2C面向对象

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C#面向对象程序设计面向过程面向对象面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。(接近现实的处理手法来处理项目中的问题)面向对象的三大特性封装继承多态面向对象程序设计面向对象程序设计中有2个重要的概念:对象object类class对象对象(object)现实世界中的一个事物事件。我们可以把生活所在的真实世界当作是由许多大小不同的对象所组成的。对象可以是有生命的个体,比如一个人或一只鸟。对象也可以是无生命的个体,比如一辆汽车或一台计算机。对象对象一般都有两个特征:状态和行为。软件的对象概念是由现实世界对象而来。把现实世界对象的状态保存在软件对象的变量中;现实世界对象的行为通过软件对象的方法(函数)来实现。找出下列对象共性同学张三、售票员李阿姨、王老师奥迪A6、奇瑞QQ、解放卡车鹦鹉、猫头鹰、老鹰在真实世界里,有许多同“种类”的对象。而这些同“种类”的对象可被归类为一个“类”。例如我们可将世界上所有的汽车归类为汽车类,所有的动物归为动物类。类类(class)是一组具有相同属性和行为的对象的抽象描述。类是个抽象概念,对象是个具体概念类和对象关系类是抽象的,对象是具体类不占内存,对象才占内存.对象是类的实例有了类,才能创建对象类是创建对象的模板,它包括对创建对象的属性描述对操作行为的说明类的声明class类名{类的成员;}本质:创建类的过程,其实就是产生一个新数据类型的过程。创建类实例创建类实例格式:类实例名=new类();类对象对象对象对象创建Person类的实例:Personzhangsan=newPerson();也可以分两步创建Person类的实例:Personzhangsan;zhangsan=newPerson();定义Person类:classPerson{publicstringname;publicintage;publiclongID;publicvoidShow(){Console.WriteLine(Name:{0},name);Console.WriteLine(Age:{0},age);Console.WriteLine(Name:{0},ID);}}类的成员类成员包括数据成员和函数成员。数据成员包括:类要处理的数据,它包括字段(变量)、常量和事件。函数成员包括:方法、属性、索引器、运算符、构造函数、析构函数。类的具体成员有以下类型常量:代表与类相关的常数值,是在类中声明的值不变的变量。字段:类中的变量。方法:完成类中各种计算或功能操作。属性:定义类的值,并对它们提供读写操作。事件:由类产生的通知,用于说明发生了什么事情。索引器:又称下标指示器,允许编程人员访问数组时,通过索引器访问类的多个实例。运算符:定义类的实例能使用的运算符。构造函数:在类被实例化时首先执行的函数,主要完成对象初始化操作。析构函数:在对象被销毁之前最后执行的函数,主要完成对象结束时的收尾工作。类成员访问修饰符public:声明公有成员,对公有成员访问不受限制private(默认):声明私有成员,私有成员只能被类中的成员访问,外部无法访问。protected:声明保护成员,保护成员可以被类中成员和派生类访问。internal:声明内部成员,内部成员只有在同一工程中的文件内才是可访问的。protectedinternal:同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员。常量使用关键字const定义常量例如:作为一种约定,在定义常量时,通常采用大写形式。constdoublePI=3.1415926字段字段,即类的变量,类中的数据成员,用来存储类所需的数据信息。在类中声明字段的方式如下:使用点运算符来访问字段命名规则:首字母小写classPerson{publicstringname;publicintage;publicboolgender;}publicstaticvoidMain(string[]args){Personp=newPerson();p.name=zhangsan;Console.WriteLine(p.name);}访问级别字段的类型字段的名称;方法访问级别返回值方法名称(参数列表){//方法体}命名规则:首字母大写方法的声明的语法形式:classRect{publicintPerimeter(inta,intb){intresult;result=(a+b)*2;returnresult;}publicintArea(inta,intb){intresult;result=a*b;returnresult;}}方法的参数值参数引用参数ref输出参数out可变参数parmas方法重载构成重载的条件:第一点:函数名相同第二点:参数不同参数类型不同参数个数不同个数类型相同但位置不同第三点:与返回值无关。练习定义一个人类.人类分别用三个变量来表示姓名、性别、年龄、体重,有打招呼的方法,有走路的方法,吃饭的方法,减肥的方法,在Main函数中进行测试设计一个类表示银行账户,数据成员有姓名、账号、余额;可以进行的操作有:取款、存款、打印账户信息;练习定义一个矩形类,包含有长、宽两种属性,并计算面积和周长方法。在Main函数中进行测试:创建一个矩形实例,并设置长为12,宽为5,在main函数中定义2个变量分别储存面积和周长,然后在控制台打印出来编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,在定义一个Init方法对这长宽高进行初始化,然后定义一个方法求立方体的体积。在Main函数中创建一个Box对象,使用Init方法给成员变量进行赋值,求立方体的体积。练习创建一个叫做机动车的类:字段:车牌号(String),车速(int),载重量(double)功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。在Main函数中创建两个机动车对象。创建第一个“辽A9752”,车速为50,载重为100,并让其加速2次。输出车辆信息创建第二个“辽B5086”,车速为150,载重为200,修改车牌号为:“辽C8546”,并让其减速3次。输出车辆信息练习定义一个学生类,有六个属性,分别为姓名、性别、年龄、语文、数学、英语成绩。有2个方法:一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。两个计算自己总分数和平均分的方法。{显示:我叫XX,这次考试总成绩为X分,平均成绩为X分}实化两个对象并测试:张三男18三科成绩为:909580小兰女16三科成绩为:9585100练习定义一个点的类(Point),包含2个成员变量(x,y),并包含一个点的信息打印函数(Display)编写几何图形圆的类Circle,包括两个属性:圆心O(用上题中的Point类实现)和半径R。成员函数包括:圆心位置获取函数GetO()和半径获取函数GetR();半径设置函数SetR();圆的位置移动函数MoveTo();以及圆的信息打印函数Display()。随机数Random类intNext()返回非负随机数。intNext(intmaxValue)返回一个小于所指定最大值的非负随机数。intNext(intminValue,intmaxValue)返回一个指定范围内的随机数。编写一个程序,该程序使用一个数组存储30个学生的考试成绩,并给各个数组元素指定一个1-100的随机值,然后在控制台输出所有学生的成绩。最后计算平均成绩。猜数字游戏:程序随机产生一个0-100的整数,然后用户输入数字去猜,当用户输入一个错误数字,要提示用户是大了还是小了,直到输入的数跟随机产生的数一样,程序结束编写一个掷筛子100次的程序,并打印出各种点数的出现次数。练习练习有一个二维数组int[,]=newint[10,10],数组元素默认为0,随机给数组100元素中10个元素值设置为1随机(1~30中间)生成7个随机数,注意不能重复字符串String类ToLower():得到字符串的小写形式。区别:s.ToLower()与s=s.ToLower()ToUpper():得到字符串的大写形式;Trim():去掉字符串两端的空白。ToCharArray():字符串转换为字符数组string[]Split(paramschar[]separator):将字符串按照指定的分割符分割为字符串数组;string[]Split(char[]separator,StringSplitOptionsoptions)将字符串按照指定的char分割符分割为字符串数组(options取RemoveEmptyEntries的时候移除结果中的空白字符串);string[]Split(string[]separator,StringSplitOptionsoptions)将字符串按照指定的string分割符分割为字符串数组。stringReplace(stringoldValue,stringnewValue):将字符串中的出现oldValue的地方替换为newValue。stringSubstring(intstartIndex):取从位置startIndex开始一直到最后的子字符串;stringSubstring(intstartIndex,intlength):取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。boolContains(stringvalue):判断字符串中是否含有子串valueboolStartsWith(stringvalue):判断字符串是否以子串value开始;boolEndsWith(stringvalue):判断字符串是否以子串value结束;intIndexOf(stringvalue):取子串value第一次出现的位置。练习接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。abc→cba(使用char数组做)接收用户输入的一句英文,将其中的单词以反序输出。hellocsharp→sharpchello用户输入一个Email,从Email中提取出用户名和域名并输出。如:abc@163.com,则输出用户名为abc,域名为163.com用户输入一个手机号,将后四位的数字使用xxxx代替并输出。如(13812345678)则输出1381234xxxx用户输入一段文字,如果这段文字不超过20个字,则全部输出,如果超过了20个字,则仅输出20个字,并且在这20个字后添加省略号“...”用户输入一段文字,如果以kf开头的,则在控制台输出“客服”,如果以game开头,则输出“游戏”输入一个网站(如:)则输出域名()从日期字符串(2008-08-08)中分析出年、月、日;打印出:2008年08月08日。用户输入一段文字,如果用户输入中含有“和谐”,“天安门”,“主席”,“台湾”,则将敏感词使用*代替输出,如“天安门”使用3个星号代替,“和谐”使用2个信号代替练习任意输入字符串,输出字符串每个字符的ASCII码值。练习合并一个字符串中所有相邻的重复字符,比如:“AABBCCCDDDEEEEE”,合并后是“ABCDE”关于实例方法和实例变量的说明:一个类产生的所有实例(对象),它们的成员变量在内存中都有一份单独的拷贝,而成员方法在内存中只有一份拷贝,供所有的实例(对象)调用。姓名:张三年龄:20身高:179姓名:李四年龄:22身高:183姓名:王五年龄:32身高:173吃饭()成员变量在内存中单独拷贝成员方法在内存中只有一份拷贝classPerson{publicstringname;publicvoidEat(){Console.WriteLine({0}eat,name);}}Personp1=newPerson();p1.na

1 / 157
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功