类和对象课件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * 总结 对象由状态(属性)和行为(方法)组成; 类是具有相同属性和方法的对象的集合; 封装可以隐藏对象实现的具体细节; 必须先实例化类的对象,才可以访问到其中的成员; 成员运算符用于访问对象的成员; 成员可以定义为公有,也可以定义为私有; 构造方法一般用来初始化对象中的数据成员; 如果不定义构造方法,将有默认的构造方法,一旦定义,默认的构造方法自动消失。 练习 编写一个包含名为Calculator类的程序。定义两个整型属性以及对该两个变量的setter和getter,编写用于对两个属性执行加、减、乘、除运算方法。在main方法里创建该类的对象并访问这些方法。 编写一个名为Box的类,含整型的length,width, height,volume四个属性,要求在构造方法中将其初始化,并定义一个计算体积的calcVolume方法和一个输出体积的print方法,在main方法中进行调用 回顾 对象由属性(数据)和方法(函数)组成; 类是具有相同属性和方法的对象的集合; 封装可以隐藏对象实现的细节部分; 对象是引用数据类型,使用new运算符创建对象实例,使用成员运算符访问对象中的成员; 访问修饰符用来控制访问权限,可以有效地保证数据安全; 构造方法一般用来初始化对象中的数据成员 成员运算符. 在C语言中,必须要先声明结构体变量,才可以访问结构体中的成员; 同样的,只有先实例化类的对象,才可以访问到类中的成员(属性和方法); 使用成员运算符(.)来访问成员属性或成员方法; 一般语法是: 对象名.成员名 如:std.age = 18; //为成员属性赋值 std.dining(); //调用成员方法 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 方法参数传值 当方法被调用时,如果方法有参数,则参数必须实例化,即参数变量必须有具体的值 方法如果改变参数的值,不会影响向参数“传值”的变量的值 有两种数据类型参数的传值: 基本数据类型参数的传值 引用类型参数的传值 基本数据类型参数的传值 对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别 引用类型参数的传值 当参数是引用类型时,“传值”传递的是变量的引用而不是变量所引用的实体 如果改变参数变量所引用的实体,就会导致原变量的实体同样发生变化。因为两个引用型 变量如果具有同样的实体,就会用同样的实体 改变参数的引用不会影响向其传值的变量的引用 引用类型参数传值示意图 传值 引用类型变量 引用类型参数 实体 引用 引用 案例分析 在上面的案例中,我们已经定义了求整数绝对值的方法; 但有时候,我们可能还需要求浮点数的绝对值,请问:可以继续使用这个方法吗? 事实上是行不通的,这个方法只能求出整数的绝对值,对于浮点数,还需另外再定义求浮点数绝对值的方法。 修改案例 public class AbsoluteValue { /*求整数绝对值的方法*/ public int absOfInt(int x) { return ((x = 0) ? x : -x); } /*求浮点数绝对值的方法*/ public float absOfFloat(float x) { return ((x = 0) ? x : -x); } public static void main(String[] args) { AbsoluteValue obj = new AbsoluteValue(); int a = -8, b; b = obj.absOfInt(a); System.out.println(a + 的绝对值是 + b); float c = -3.14f, d; d = obj.absOfFloat(c); System.out.println(c + 的绝对值是 + d); } } 如果还要求其它类型的 绝对值,就需要定义更 多的方法,这对于调用 者来说,将会是非常麻 烦的事情。 方法重载 用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表; 编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如: /*abs方法的重载*/ int abs(int x) {……} float

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档