面向对象程序语言设计5用对象思考属性和方法ppt课件_第1页
面向对象程序语言设计5用对象思考属性和方法ppt课件_第2页
面向对象程序语言设计5用对象思考属性和方法ppt课件_第3页
面向对象程序语言设计5用对象思考属性和方法ppt课件_第4页
面向对象程序语言设计5用对象思考属性和方法ppt课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章用对象思索:属性和方法用对象思索:属性和方法了解类与对象的概念了解类与对象的概念了解属性和方法的概念了解属性和方法的概念可以定义一个简单的类可以定义一个简单的类本章目的本章目的对象对象对象是人们要进展研讨的任何事物 颜色:灰色颜色:灰色排量:排量:3.0 3.0 刹车刹车产地:德国产地:德国行驶行驶名字:保时捷名字:保时捷行为行为形状形状颜色:红色颜色:红色排量:排量:4.04.0刹车刹车产地:意大利产地:意大利行驶行驶名字:法拉利名字:法拉利行为行为形状形状描画汽车的特征和行为描画汽车的特征和行为 有各自不同有各自不同的形状的形状类和对象类和对象小汽车小汽车颜色:灰色颜色:灰色排

2、量:排量:3.0 3.0 刹车刹车产地:德国产地:德国行驶行驶名字:保时捷名字:保时捷行为行为形状形状类的实例化,是类的实例化,是由类详细化对象由类详细化对象类类产地产地 车体颜色车体颜色 行驶行驶 刹车刹车 归纳一组类似对归纳一组类似对象的共性象的共性对象对象属性属性方法方法 类描画一组类似对象的共性类描画一组类似对象的共性类和对象的运用类和对象的运用 类和对象的简单运用类和对象的简单运用/Car ferrari = New Car();ferrari.Run(); /类类对象对象实例化对象实例化对象 调用方法调用方法 public class Student int age = 26; /

3、 姓名姓名 private string name; public string Name get return name; set name = value; /问候问候 public void SayHi() 类和类的成员类和类的成员类的成员类的成员字段字段 属性属性 方法方法 类名类名 自定义一个类自定义一个类自定义类自定义类DBHelperclass DBHelper / 数据库衔接字符串数据库衔接字符串 private static string connString = ; / 数据库衔接数据库衔接 Connection 对象对象 public static SqlConnecti

4、on connection = new SqlConnection(connString); 访问修饰符访问修饰符私有私有 公有公有 公有成员和私有成员公有成员和私有成员class student private string name;/姓名姓名 public int age; /年龄年龄 public string idNumber ;/身份证号身份证号static void Main(string args) student myStudent = new student(); myS = 张三张三; myStudent.age = 20; 私有成员私有成员 公有成

5、员公有成员 实例化一个对象实例化一个对象 可以访问可以访问 演示例如演示例如1 1:访问修饰符:访问修饰符 无法访问编译错误无法访问编译错误 数据平安数据平安static void Main(string args) student myStudent = new student(); myStudent.age = -2; myStudent.idNumber = 123456; 非法数据非法数据 身份证号不能被修正身份证号不能被修正 无法获得数据无法获得数据 无法正常赋值无法正常赋值 有时候将类中有时候将类中的字段公开是的字段公开是不平安的不平安的假设设为私有成员假设设为私有成员能否对这些

6、字段进展规那么约束或者只读呢?能否对这些字段进展规那么约束或者只读呢? 在类中运用属性在类中运用属性private int age; /年龄年龄public int Age get return age; set if (value 0 & value 0 & value 50 & score 60) Console.WriteLine(他的成果在他的成果在50-60之间,可以加分。之间,可以加分。); score = 60; scoreResult = 60; 都可以输出结果都可以输出结果 ref偏重修正,偏重修正,out偏重输出偏重输出 不能写成不能写成AddSco

7、re(out int scoreResult)方法的运用方法的运用实现两个整型的加法实现两个整型的加法class Add public int Sum(int para1, int para2) return para1 + para2; Add myAdd = new Add();int sum = myAdd.Sum(2, 3);运用方法运用方法实例化一个对象实例化一个对象 前往结果前往结果 演示例如演示例如3:方法的运用:方法的运用 调用方法调用方法 静态方法静态方法class mySwap public static void Swap(ref int num1,ref int num

8、2) int temp; temp = num1; num1 = num2; num2 = temp; class Program static void Main(string args) int num1 = 5, num2 = 10; mySwap.Swap(ref num1, ref num2); 回想一下,回想一下,Swap方法在另一类中如何调用?方法在另一类中如何调用?静态方法运用类名调用静态方法运用类名调用静态方法静态方法 静态方法和实例方法静态方法和实例方法 运用运用static修饰的方法称为静态方法修饰的方法称为静态方法 运用实例对象调用的方法叫做实例方法运用实例对象调用的方

9、法叫做实例方法静态方法静态方法实例方法实例方法static 关键字关键字不需要不需要static关键字关键字使用类名调用使用类名调用使用实例对象调用使用实例对象调用可以访问静态成员可以访问静态成员可以直接访问静态成员可以直接访问静态成员不可以直接访问实例成员不可以直接访问实例成员可以直接访问实例成员可以直接访问实例成员不能直接调用实例方法不能直接调用实例方法可以直接访问实例方法、静态方法可以直接访问实例方法、静态方法调用前初始化调用前初始化实例化对象时初始化实例化对象时初始化为什么要重载为什么要重载 public int Sum(int para1, int para2) return par

10、a1 + para2; 整形参数,整形参数,前往值整型前往值整型假设想让两个假设想让两个string型、两个型、两个double型相加,怎样做?型相加,怎样做? 编写两个不同名字的方法,这样我们在进展调用时编写两个不同名字的方法,这样我们在进展调用时要先判别是什么类型,能否不判别直接就能相加呢?要先判别是什么类型,能否不判别直接就能相加呢?方法的重载方法的重载同一个类中添加几个名字一样,参数与前往值不同的方法同一个类中添加几个名字一样,参数与前往值不同的方法 public string Sum(string para1, string para2) return para1 + para2;

11、public double Sum(double para1, double para2) return para1 + para2; 调用时只需传送参数即可,无需判别类型调用时只需传送参数即可,无需判别类型 演示例如演示例如4:方法的重载:方法的重载 class Add public string Sum(string para1, string para2) public int Sum(int para1, int para2) 重载的方式重载的方式基于不同类型参数的重载基于不同类型参数的重载 class Add public int Sum(int para1, int para2)

12、public int Sum(int para1, int para2,int para3) 一样类型不同参数个数的重载一样类型不同参数个数的重载 不允许重载方法仅仅是前往值不同不允许重载方法仅仅是前往值不同 演示例如演示例如5:构造函数:构造函数 Student zhang = new Student();zhang.Name = 张靓靓张靓靓;zhang.Age = 20;zhang.Hobby = 唱歌歌唱歌歌;一种特别的方法一种特别的方法班级来了新学员班级来了新学员添加学员对象添加学员对象学员类实例化对象、学员类实例化对象、设置属性设置属性初始属性假设太初始属性假设太多,设置费事多,设

13、置费事能否在实例化时设置能否在实例化时设置属性?属性?public Student(string name, int age, string hobby) this.Name = name; this.Age = age; this.Hobby = hobby;Student zhang = new Student(张靓靓张靓靓, 20, 唱歌歌唱歌歌);一次设置完成一次设置完成类中参与这类中参与这个方法个方法添加的方法叫做构造函数添加的方法叫做构造函数构造函数构造函数是类中的一种特殊的方法是类中的一种特殊的方法构造函数名与类名一样,不前往任何值构造函数名与类名一样,不前往任何值可初始化成员变

14、量可初始化成员变量class Student public Student(string name, int age, string hobby) this.Name = name; this.Age = age; this.Hobby = hobby; 初始化成员变量初始化成员变量 this 关键字援用类的当前实例关键字援用类的当前实例 将参数的值,分别赋将参数的值,分别赋给当前实例的属性给当前实例的属性运用构造函数运用构造函数 new 关键字 可以实例化一个新的对象 指定对某个带参数的构造函数 Student zhang = new Student(张靓靓张靓靓, 20, 唱歌歌唱歌歌);

15、 每次创建类的实例都会调用此方法每次创建类的实例都会调用此方法实例化对象调用实例化对象调用构造函数构造函数 运用运用 new 关键字关键字 Student scofield = new Student();Student zhang = new Student(张靓靓张靓靓, 20, 唱歌歌唱歌歌);实例化一个对象实例化一个对象 实例化一个新对象实例化一个新对象 public Student() public Student(string name, int age, string hobby) = name; this.age = age; this.hobby = ho

16、bby;构造函数的重载构造函数的重载构造函数也可以重载构造函数也可以重载Student scofield = new Student();Student zhang = new Student(张靓靓张靓靓, 20, 唱歌歌唱歌歌);方法名一样,方法名一样,参数不同参数不同综合实战综合实战构造函数的重载,可以使类实例化对象更灵敏演示例如演示例如6:重载:重载(RssRead类的搭建类的搭建) 点击次数点击次数 Clicks描画描画 Descriptionurl 地址地址 Url构造函数构造函数显示称号显示称号 DisplayName DisplayName方法方法属性属性都是读写属性都是读写属

17、性 private int a;public int Aget return a; set a = value;他喜欢读哪段代码?他喜欢读哪段代码? 合格的程序要符合编码规那么合格的程序要符合编码规那么直观易于了解、有意义的单词直观易于了解、有意义的单词 方便维护方便维护有利于调试有利于调试编码规那么的必要性编码规那么的必要性如如name,age,student private int name;public int Name get return name; set name = value;无法了解无法了解是什么是什么 Pascal命名法命名法变量采用有意义的单词变量采用有意义的单词单词的一个字母大写单词的一个字母大写StudentName、MaxAgeCamel命名法命名法变量采用有意义的单词变量采用有意义的单词第一个单词的首字母小写第一个单词的首字母小写其他单词的首字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论