第7章圆和矩形——类与对象ppt课件_第1页
第7章圆和矩形——类与对象ppt课件_第2页
第7章圆和矩形——类与对象ppt课件_第3页
第7章圆和矩形——类与对象ppt课件_第4页
第7章圆和矩形——类与对象ppt课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 圆和矩形类与对象 能力目标:能力目标:学会定义类,编写字段、方法和构造方法等,学学会定义类,编写字段、方法和构造方法等,学会使用会使用new构建对象。构建对象。学会使用学会使用public、private等修饰符。等修饰符。学会使用关键字学会使用关键字static、final声明类成员。声明类成员。能定义圆类和矩形类,构建对象,并计算它们的能定义圆类和矩形类,构建对象,并计算它们的面积、周长和个数。面积、周长和个数。内容介绍内容介绍 7.1 任务预览任务预览 7.2 定义类定义类 7.3 构造方法及其重载构造方法及其重载 7.4 访问控制修饰符访问控制修饰符 7.5 静态成员和实例成员

2、静态成员和实例成员 7.6 使用使用final 7.7 程序举例程序举例 7.8 本章小结本章小结 7.9 实训实训7:构建圆和矩形对象:构建圆和矩形对象7.1 任务预览任务预览 本章实训程序运行结果: 7.2 定义类定义类 【例7-1】定义圆类Circle,把圆的性质和行为用代码块封装起来。 class Circle /圆类private double radius; /半径字段private double x, y; /圆心坐标字段public static final double PI = 3.14159; /圆周率常量字段public Circle( ) /构造方法1public C

3、ircle(double r) /构造方法2if (r 0) Sysetm.out.println(负数不能当圆半径); else radius = r;public double getRadius ( ) return radius; public void setRadius(double r) throws Exception if (r 0) throw new Exception(“负数不能当圆半 径); else radius = r; /public static int getNum( ) return num; public double calcArea( ) retur

4、n PI * radius * radius; public double calcGirth( ) return 2 * PI * radius; Circle.java 类定义的一般形式类定义的一般形式 可选public 可选abstract 可选final class 类名 字段、方法等成员以及构造方法类字段成员一般声明为private,这是类的封装性要求。类的方法成员一般声明为public。注意:类允许嵌套定义。 7.3 构造方法及其重载构造方法及其重载 可选public等 构造方法名( 可选形参表 ) 可选throws子句 方法体语句例7-1定义的Circle类两个构造方法是:pub

5、lic Circle() /构造方法1num +; public Circle(double r) throws Exception /构造方法2if (r 0) throw new Exception(“负数不能当圆半径); else radius = r;num +; 【例7-2】在例7-1基础上,构建若干个圆对象,并计算圆的面积和周长。Example2.java 7.4 访问控制修饰符访问控制修饰符 public、protected和private。 类的访问控制方式有两种: 缺省,称为包可访问性; 使用修饰符public 。 注意:类和接口interface只能用public修饰,不能

6、用protected或private修饰。 7.4.2 成员修饰符成员修饰符public、protected 和和 private 类成员有4个访问级别: 访问级别含义publicpublic公共的成员,访问不受限制,访问级别最高,范公共的成员,访问不受限制,访问级别最高,范围最大围最大protectedprotected 受保护的成员,能被所有派生类继承,访问限于受保护的成员,能被所有派生类继承,访问限于本包本包缺省的缺省的包可访问的成员,访问限于所在的包包可访问的成员,访问限于所在的包privateprivate私有成员,访问仅限于本类,访问级别最低,范私有成员,访问仅限于本类,访问级别最

7、低,范围最小围最小编程风格编程风格推荐采用下面方式命名类及其成员:推荐采用下面方式命名类及其成员:(1 1类名以大写字母开头。如圆类:类名以大写字母开头。如圆类:class class Circle . Circle . (2 2类成员以小写字母开头,如计算面积方法:类成员以小写字母开头,如计算面积方法:calcAreacalcArea(3 3常量全部以大写字母命名。如圆周率常量全部以大写字母命名。如圆周率 PIPI。 7.5 静态成员和实例成员 用static修饰的成员称为静态成员静态字段和静态方法)。 如例7-1中,Circle类的静态成员有:private static int num;

8、 /圆对象个数public static final double PI = 3.14159; /圆周率public static int getNum() return num; 静态成员能被类的所有对象共享。 7.5.1 使用使用static声明静态成员声明静态成员使用类名作前缀引用静态成员的一般形式:类名.方法名(实参表)类名.字段名7.5.2 实例成员与关键字实例成员与关键字this 实例成员实例字段、实例方法):没有static修饰的成员。 实例成员就是非静态成员。 实例成员为类对象所独占。 使用对象实例作前缀引用实例成员,语法形式: 关键字this用于指代当前的对象。因而,类内部可

9、以使用this作前缀引用实例成员。 例如,Circle类中可用this.radius引用实例字段radius。 对象名对象名.方法名方法名(实参表实参表) 对象名对象名.字段名字段名 7.6 使用final 声明符号常量要使用关键字final。例如,声明圆周率PI:public static final double PI=3.14159;习惯使用大写字母来命名符号常量。符号常量只能赋值一次。关键字final既可声明字段,也可声明局部变量。声明字段时通常与static一起使用。注意:由于圆周率使用广泛,Java系统已在Math数学类中定义了。7.6.1 使用使用final声明常量声明常量7.6

10、.2 使用final声明方法 关键字final除了声明常量,还可声明方法。 比如Circle类的计算面积方法,可以改为如下定义:public final double calcArea() return PI * radius * radius; 使用final声明的方法就是最终方法,不允许派生子类重写,即不允许更改方法内容。7.6.3 使用final声明类 final还可声明类,这就是最终类 最终类不能被继承,不能派生子类。 例如:系统类System就是一个最终类,其声明如下: public final class System . 7.7 程序举例 【例7-3】定义一个儿童类,构建若干个小

11、朋友对象,并输出有关数据。 class Child private String name; private char sex;private int age;private static int num;public Child( ) Child.num+; public Child(String name, char sex, int age) = name;this.sex = sex;this.age = age;Child.num+; public static void main(String args) Child child1 = new Child(露丝,

12、 女, 4); System.out.printf(%s小朋友:%c,%d岁n, child1.getName(), child1.getSex(), child1.getAge(); child1.like(唱歌、朗读); System.out.printf(= 报数:%d =n, Child.getNum(); Child child2 = new Child(“张华”, 男, 5); Child child3 = new Child(佳妮, 女, 3); System.out.printf(= 报数:%d =n, ); public void like(String content) p

13、ublic String getName() return name; public void setName(String name) = name; public static int getNum() return num; Example3.java【例7-4】定义一个住房类,构建若干套房子对象,并输出有关数据。 class 住房private double 面积;private int 房间数 ;private String 朝向;private int 房号;private static int 总套数;public 住房(double 面积, int 房间数,

14、 String 朝向, int 房号)this.面积 = 面积;this.房间数 = 房间数;this.朝向 = 朝向;this.房号 = 房号;住房.总套数 +;public String 获取住房信息()return String.format(第%d套:%d号房,面积%.2f平方米,%d房,%s朝向, 总套数, 房号, 面积, 房间数, 朝向); public static void main(String args) 住房 房子;房子 = new 住房(112.3, 3, 东南, 501);System.out.println(房子.获取住房信息(); 房子 = new 住房(120.

15、2, 3, 东北, 502);System.out.println(房子.获取住房信息(); 房子 = new 住房(135.8, 4, 西南, 503);System.out.println(房子.获取住房信息(); 房子 = new 住房(170.6, 5, 西北, 504);System.out.println(房子.获取住房信息(); 房子 = new 住房(112.3, 3, 东南, 601);System.out.println(房子.获取住房信息(); Example4.java7.8 本章小结 类与对象之间的关系是总体和个体关系。 构造方法是与类同名的特殊方法。类的构造方法可以重载。 类的主要成员是字段和方法,类各个对象也拥有字段和方法。 访问控制修饰符public、protected和private,其中public除了修饰类成员,还可修饰类本身,其余两个只能

温馨提示

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

评论

0/150

提交评论