第二章类与对象的基本概念(编辑修改稿)内容摘要:

行计算及取得结果等 –调用格式 对象名 .方法名 ([参数列表]) 称点操作符 “ .” 前面的 对象名 为消息的接收者 (receiver) –参数传递 值传递:参数类型为基本数据类型时 引用传递:参数类型为对象类型或数组时 方法成员 (续 ) —— 方法调用 类与对象 JAVA语言程序设计 清华大学 郑莉 51  实例方法 –表示特定对象的行为 –声明时前面不加 static修饰符 –使用时需要发送给一个类实例 方法成员 (续 ) —— 实例方法 类与对象 JAVA语言程序设计 清华大学 郑莉 52  在 Circle类中声明计算周长的方法 public class Circle { static double PI =。 int radius。 public double circumference() { return 2 * PI * radius。 } } – 由于 radius是实例变量,在程序运行时, Java会自动取其接收者对象的属性值 – 也可将 circumference方法体改为: return 2 * PI *。 关键字 this代表此方法的接收者对象 方法成员 (续 ) —— 例 2_6 类与对象 JAVA语言程序设计 清华大学 郑莉 53  方法调用测试 public class CircumferenceTester { public static void main(String args[]) { Circle c1 = new Circle()。 = 50。 Circle c2 = new Circle()。 = 10。 double circum1 = ()。 double circum2 = ()。 (Circle 1 has circumference + circum1)。 (Circle 2 has circumference + circum2)。 } } 方法成员 (续 ) —— 例 2_6 类与对象 JAVA语言程序设计 清华大学 郑莉 54  运行结果 Circle 1 has circumference Circle 2 has circumference  说明 – 在使用实例方法时,需要将其发送给一个实例对象(也称给对象发送一条消息), radius的值即是接收者对象的值 – 在执行 ()时, radius的值为 c1的 radius属性值;在执行 ()时,radius的值为 c2的 radius属性值 类与对象 方法成员 (续 ) —— 例 2_6运行结果 JAVA语言程序设计 清华大学 郑莉 55  在 Circle类及 Rectangle类中声明计算面积的方法area() 方法成员 (续 ) —— 例 2_7 public class Circle { static double PI =。 int radius。 public double circumference() { return 2 * PI * radius。 } public double area() { return PI * radius * radius。 } } public class Rectangle { double width。 double height。 public double area() { return width * height。 } } 类与对象 JAVA语言程序设计 清华大学 郑莉 56  声明测试类,对 Circle类及 Rectangle类的 area()方法进行测试 public class AreaTester { public static void main(String args[]) { Circle c = new Circle()。 = 50。 Rectangle r = new Rectangle()。 = 20。 = 30。 (Circle has area + ())。 (Rectangle has area + ())。 } } 类与对象 方法成员 (续 ) —— 例 2_7 JAVA语言程序设计 清华大学 郑莉 57  运行结果 Circle has area Rectangle has area  说明 –不同的类中可以声明相同方法名的方法 –使用时,系统会根据接收者对象的类型找到相应类的方法 方法成员 (续 ) —— 例 2_7运行结果 类与对象 JAVA语言程序设计 清华大学 郑莉 58  带参数的方法举例:在 Circle类中增加方法改变圆的半径 public class Circle { static double PI =。 int radius。 public double circumference() { return 2 * PI * radius。 } public double area() { return PI * radius * radius。 } public void enlarge(int factor) { radius = radius * factor。 } } 方法成员 (续 ) —— 例 2_8 类与对象 JAVA语言程序设计 清华大学 郑莉 59  测试类 public class EnlargeTester { public static void main(String args[]) { Circle c1 = new Circle()。 = 50。 Circle c2 = new Circle()。 = 10。 (Circle 1 的周长 : + ())。 (Circle 2 的周长 : + ())。 (4)。 (Circle 2 扩大后的周长 : + ())。 } } 方法成员 (续 ) —— 例 2_8 类与对象 JAVA语言程序设计 清华大学 郑莉 60  运行结果 Circle 1 的周长 : Circle 2 的周长 : Circle 2 扩大后的周长 : 方法成员 (续 ) —— 例 2_8运行结果 类与对象 JAVA语言程序设计 清华大学 郑莉 61  以对象作为参数的方法举例:在 Circle类中增加fitsInside方法判断一个圆是否在一个长方形内,需要以 Rectangle类的对象作为参数 public class Circle { static double PI =。 int radius。 public double circumference() { return 2 * PI * radius。 } public void enlarge(int factor) { radius = radius * factor。 } public boolean fitsInside (Rectangle r) { return (2 * radius ) amp。 amp。 (2 * radius )。 } } 方法成员 (续 ) —— 例 2_9 类与对象 JAVA语言程序设计 清华大学 郑莉 62 测试类 public class InsideTester { public static void main(String args[]) { Circle c1 = new Circle()。 = 8。 Circle c2 = new Circle()。 = 15。 Rectangle r = new Rectangle()。 = 20。 = 30。 (Circle 1 fits inside Rectangle: + (r))。 (Circle 2 fits inside Rectangle: + (r))。 } } 方法成员 (续 ) —— 例 2_9 类与对象 JAVA语言程序设计 清华大学 郑莉 63  运行结果 Circle 1 fits inside Rectangle: true Circle 2 fits inside Rectangle: false 方法成员 (续 ) —— 例 2_9运行结果 类与对象 JAVA语言程序设计 清华大学 郑莉 64  类方法 –也称为静态方法,表示类中对象的共有行为 –声明时前面需加 static修饰符 –不能被声明为抽象的 –类方法可以在不建立对象的情况下用类名直接调用,也可用类实例调用 方法成员 (续 ) —— 类方法 类与对象 JAVA语言程序设计 清华大学 郑莉 65  将摄氏温度 (centigrade)转换成华氏温度 (fahrenheit) – 转换公式为 fahrenheit = centigrade * 9 / 5 + 32 – 除了摄氏温度值及公式中需要的常量值,此功能不依赖于具体的类实例的属性值,因此可声明为类方法 – 转换方法 centigradeToFahrenheit放在类 Converter中 public class Converter { public static int centigradeToFahrenheit(int cent) { return (cent * 9 / 5 + 32)。 } } – 方法调用 (40) 方法成员 (续 ) —— 例 2_10 类与对象 JAVA语言程序设计 清华大学 郑莉 66  包 –是一组类的集合 一个包可以包含若干个类文件,还可包含若干个包 –包的作用 将相关的源代码文件组织在一起 类名的空间管理,利用包来划分名字空间,便可以避免类名冲突 提供包一级的封装及存取权限 类的组织 —— 包的概念 类与对象 JAVA语言程序设计 清华大学 郑莉 67  包的命名 – 每个包的名称必须是“独一无二”的 – Java中包名使用小写字母表示 – 命名方式建议  将机构的 Inter域名反序,作为包名的前导  若包名中有任何不可用于标识符的字符,用下划线替代  若包名中的任何部分与关键字冲突,后缀下划线  若包名中的任何部分以数字或其他不能用作标识符起始的字符开头,前缀下划线 类的组织 —— 包的概念 类与对象 JAVA语言程序设计 清华大学 郑莉 68  编译单元与类空间 – 一个 Java源代码文件称为一个编译单元,由三部分组成  所属包的声明(省略,则属于默认包)  Import ( 引入)包的声明,用于导入外部的类  类和接口的声明 – 一个编译单元中只能有一个 publi。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。