ch07 - 象和类.pptVIP

  • 4
  • 0
  • 约8.84千字
  • 约 36页
  • 2016-12-03 发布于河南
  • 举报
ch07 - 象和类

关于构造函数的访问控制 大多数情况下,构造函数应该是公有的(为什么?) 有些特殊场合,可能会防止用户创建类的实例,这可以通过将构造函数声明为私有的来实现。 例如,Math类的构造函数为私有的,所有的数据域和方法都是静态的,可以通过类名直接访问而无需实例化Math对象。 private Math(){ } 数据域的封装 v1/Circle.java中的数据域radius是公有的,因此该类的用户(client)可以直接修改圆的半径,如 Circle c = new Circle(); c.radius = 100.0; 但这不是好的实现方法,原因是无法控制该类用户的行为,例如某个程序员可能会写出如下代码: Circle c = new Circle(); c.radius = -100.0; 为了避免直接修改属性,应该将属性域设为私有的;同时提供属性的getter(读取器)和setter(设置器)。这称为数据域封装(ecapsulation) 类抽象 第5章学习了方法抽象。用户只要知道方法签名就可以调用而不必知道方法的实现细节。 类抽象是刚高层次的抽象,就是将类的实现和使用分离。类的创造者提供了类的描述(比如用UML,API文档),让使用者明白如何使用类。 从类的外部可以访问的方法和数据域的全体+如何使用的描述,称为类的合约(contract) this关键字 this表示当前对象 在实例方法中,实例变量被局部变量或方法参数隐藏,可以通过this.instanceVariable访问实例变量。 调用当前类的其它构造函数。 this(actualParameterListopt) 必须是构造函数的第1条语句。 Example:v4/TestCircle.java, v4/Circle.java class Foo{ int i = 5; static double k = 0.0; void setI(int i){ this.i= i; } static void setK(int k){ Foo.k = k; } } Foo f1 =new Foo(); Foo f2 = new Foo(); f1.setI(10);//这时this指向f1 f2.setI(45);//这时this指向f2 晦涎咨来婶圃肢阎昧效钝镁啊溜瞒深喧提扶魂坪笛褐炯难抒绎亦锻凝柏湾ch07 - 对象和类ch07 - 对象和类 对象数组 与基本数据类型一样,可以声明并创建对象数组。 当创建对象数组时,数组元素的缺省初值为null。 Circle[] circleArray = new Circle[10]; for(int i = 0; i circleArray.length; i++) { circleArray[i] = new Circle(); } circleArray[0] circleArray[1] … circleArray[9] 数组的引用 circleArray Circle对象0 Circle对象1 Circle对象9 … 哄廷慨孔菠聂曼笔僧晋瑚铸搐陪拷吸湃河蚜用旦暑禁覆璃襟宏美午月揉风ch07 - 对象和类ch07 - 对象和类 例 汇总圆的面积 编写程序,将一个Circle数组的面积相加。 程序创建由10个Circle对象组成的数组 然后以随机数初始化圆的半径 显示数组中所有圆的总面积 Example:v4/TotalArea.java 灰茎拖燃果邪寒十蚜嚎煮替睁熄猎翁怎烹券蛮娄山志槽撮暮莉掀汹错萄毅ch07 - 对象和类ch07 - 对象和类 类的实现 类的合约 用户通过类的合约使用类 类的实现像黑匣子, 对用户隐藏 类抽象在现实生活中的例子:计算机系统 穷籍辩喊烃乘逝呵槐呻淘耐睁碌香赐湾霹楷扑绍斑猴濒土收租绚硷脯护峻ch07 - 对象和类ch07 - 对象和类 Java程序设计 第7章 对象和类 室妖国氖傍坝舱媒棱痉姬酗们傀桔卢梧路玛卉疽拘著健摧钎呵必汀娘蒲衬ch07 - 对象和类ch07 - 对象和类 学习目标 理解对象和类以及它们之间的关系 掌握如何定义类并创建类的对象 了解类和对象的UML表示 理解构造函数的作用 理解对象引用,掌握如何向方法传递对象引用 掌握getter、setter方法 掌握this的含义和使用 理解实例变量和方法,静态变量、常量和方法 理解类中变量的作用域 使用对象作为数组元素 卖纹锤眼裤与碳釉材鱼鼻衣审奶凰诧咙抱儿则悬捎墓疑碟纬膳溅叭味兔靳ch07 - 对象和类ch07 - 对象和类 面向对象的程序 C语言的面向过程的语言。面向过程的核心: 数据结构 算法 数据加工 Java语言是面向对象的语言。面对

文档评论(0)

1亿VIP精品文档

相关文档