Java程序设计第2版第七章
发布时间:2024-11-18
发布时间:2024-11-18
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
第7章 Java类的特性
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
通过本章的学习,主要掌握以下知识点:类的私有成员与公共成员
方法的重载构造方法
实例成员与静态成员
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
本章的重点: 方法的重载
构造方法本章的难点:
静态成员
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.1 类的私有成员与公共成员在第6章的例子中,可以看到类的成员变量pi、
radius和height可以在类Cylinder的外部任意修改。这虽然方便了程序员灵活的使用,但也存在弊端。
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.1.1 私有成员如果没有一个机制来限制对类中成员的访问, 则很可能会造成错误的输入。为了防止这种情况
的发生,Java提供了私有成员访问控制修饰符private。 下面来举例说明。
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
【例7.1】在圆柱体类Cylinder中,创建类的 私有成员,使之在该类的外部无法访问该成员。//app7_1.java 定义私有成员,使之无法在类外被访问 class Cylinder //定义Cylinder类 { private double radius; //将数据成员radius声明为私有的 private int height; //将数据成员height声明为私有的 private double pi=3.14; //将数据成员pi声明为私有的,并赋初值 double area() { return pi* radius* radius; //在Cylinder类内部,故可访问私有成员 } double volume() { return area()*height; //在类内可以访问私有成员height } }2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
【例7.1】续public class app7_1 //定义公共主类 { public static void main(String args[ ]) { Cylinder volu; volu=new Cylinder(); volu.radius=2.8; //错误!在类的外部,不能直接访问私有成员。 volu.height=-5; //错误!在类的外部,不能直接访问私有成员。 System.out.println("底圆半径="+volu.radius); System.out.println("圆柱的高="+volu.height); System.out.print("圆柱"); System.out.println(“底面积=”+volu.area()); //正确! System.out.println("圆柱体体积="+volu.volume()); //正确! } }2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.1.2 公共成员如果在类的成员声明的前面加上修饰符public,
则表示该成员可以被所有其他的类所访问。由于public修饰符会造成安全性和数据封装性的下降,所
以一般应减少公共成员的使用。下面举例说明如何利用公共方法来访问私有成员变量。
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
【例7.2】创建圆柱体类Cylinder的公共成员 方法,来访问类内的私有成员变量 。//app7_2.java 定义公共方法来访问私有成员 class Cylinder { private double radius; //声明私有数据成员 private int height; private double pi=3.14; public void SetCylinder(double r, int h) //声明具有2个参数的公共方法 { //用于对私有数据进行访问 if (r>0&& h>0) { radius=r; height=h; } else System.out.println(“您的数据有错误!!”); }2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
double area() 【例7.2】续 { return pi* radius* radius; //在类内可以访问私有成员radius和pi } double volume() { return area()*height; //在类内可以访问私有成
员height }} public class app7_2 //定义公共主类 { public static void main(String args[ ]) { Cylinder volu=new Cylinder(); volu.SetCylinder(2.5, -5); //通过公共方法SetCylinder()访问私有数据 System.out.println("圆柱底面积="+volu.area()); System.out.println("圆柱体体积="+volu.volume()); } }2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
【例7.2】续程序运行结果如下: 您的数据有错误!! 圆柱底面积=0.0 圆柱体体积=0.0
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.1.3 友元若在类成员的前面加上访问控制符friendly, 说明该成员是友元。友元访问控制符可以省略。也 就是说在类内声明类成员时,不加任何访问控制修 饰符,则该成员是一个友元。一个成员被声明为友 元,表示这个成员只能被同一个包中的类所访问, 但其他包中的类不能访问该成员。 同理,对于类来说,如果一个类没有访问控制 符,说明它具有缺省访问控制特性。这种缺省的访 问控制权规定只能被同一个包中的类访问和引用, 而不可以被其他包中的类所使用。2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.2 方法的重载方法的重载是实现“多态”的一种方法。在 面向对象的程序设计语言中,有一些方法的含义相
同,但带有不同的参数,这些方法使用相同的名字,这就叫方法的重载(Overloading)。也就是说,重载 是指相同的方法名称,如果参数个数不同,或者是 参数个数相同,但类型不同,则方法就具有不同的 功能。
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
注意:方法的重载中参数的类型是关 键,仅仅是参数的变量名不同是不行的。 也就是说参数的列表必须不同,即:或 者参数个数不同,或者参数类型不同, 或者参数的顺序不同。
方法的重载的应用见教材【例7.3】
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.3 构造方法前面所介绍的由Cylinder类所创建的对象, 其成员变量都是在对象建立之后,再由相应的方
法来赋值。如果一个对象在被创建时就完成了所有的初始化工作,将会很简洁。因此Java在类里 提供了一个特殊的成员方法――构造方法。
2012-9-8
通过本章的学习,主要掌握以下知识点: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员
7.3.1 构造方法的作用与定义构造方法(constructor)是一种特殊的方法,它 是在对象被创建时初始化对象的成员的方法。构造
方法的名称必须与它所在的类名完全相同。
2012-9-8