Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 朱喜福2 1_ 第3章 类、类的继承和接口

上传人:E**** 文档编号:89369954 上传时间:2019-05-24 格式:PPT 页数:213 大小:349.50KB
返回 下载 相关 举报
Java程序设计 第二版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  朱喜福2 1_ 第3章 类、类的继承和接口_第1页
第1页 / 共213页
Java程序设计 第二版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  朱喜福2 1_ 第3章 类、类的继承和接口_第2页
第2页 / 共213页
Java程序设计 第二版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  朱喜福2 1_ 第3章 类、类的继承和接口_第3页
第3页 / 共213页
Java程序设计 第二版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  朱喜福2 1_ 第3章 类、类的继承和接口_第4页
第4页 / 共213页
Java程序设计 第二版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  朱喜福2 1_ 第3章 类、类的继承和接口_第5页
第5页 / 共213页
点击查看更多>>
资源描述

《Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 朱喜福2 1_ 第3章 类、类的继承和接口》由会员分享,可在线阅读,更多相关《Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 朱喜福2 1_ 第3章 类、类的继承和接口(213页珍藏版)》请在金锄头文库上搜索。

1、,第3章 类、类的继承和接口,一、教学目的和要求: 1. 了解面向对象技术的一些基本概念和程序设计思想。 2. 掌握Java语言中的类、对象、方法的概念。,3. 编写具有一定功能的类和使用类 4. 常用的修饰符含义和使用,包的建立使用。 5. 接口和内部类的设计和使用。,二、教学重点: 1. Java面向对象程序设计的思维方法。 2. 面向对象程序设计的基本技术。 3. 编写具有一定功能的类和使用类,能解决简单的问题。,三、教学难点: 1. 培养和树立面向对象的编程的思想。 2. 掌握面向对象编程技术。 3. 综合所学知识编写能解决实际问题的应用程序。,3.1 类,3.1.1 类的修饰符 1类

2、访问权限修饰符:public(公共的) 该类可以被任何其他类使用。,2abstract,抽象的 有抽象(abstract)方法(其子类中实现)。 抽象类没有具体实例。,3final,最终的 最终类不能有子类。,3.1.2 类的成员 有以下三种类型的成员: 域(field) 类中声明的变量称为域,用来描述类的属性或状态。,方法(method) 定义该类对象所具有的行为。 内部类 定义在一个类里面的类。,3.1.3 域、域的访问控制修饰符和其他修饰符 1域的初始化 无参数的构造方法将类中变量自动初始化:,整型初始化为0; 实型初始化为0.0f、0.0d; 逻辑型初始化为false; 字符型初始化为

3、u0000; 类对象初始化为null,表明引用不指向任何内存地址。,例3.1 何定义一个类和使用类对象。,2声明其它类对象作为一个类的域 类的域(变量)可以是其他类的对象。 “HAS-A”包含关系,一个类具有对另一个类实例的引用。 “IS-A”继承关系,本章后面讲。,例3.2 演示Birthday类的对象作为Person类的域。,3域的访问控制 类的内部: 域在类的里面都是可见的,类中的所有方法都可以使用他们。,类的外部:访问权限修饰符 类中域的可见性由关键字public、private、protected来控制。,Java中类的域共有4种访问权限: public:可以被所有其它类访问。 pr

4、ivate:只能被这个类本身访问。 protected:只有子类(不论是否在同一个包中);,同一个包内的其它类;才能访问该类的protected成员。 缺省的:包访问权限。,例3.3 在类的外部试图访问和修改该类的私有域将出现编译错误。,4封装和公开 类中的变量用protected或private修饰数据封装。 通过定义set和get方法访问: =,public|protected 变量类型 get变量名() return 变量名; = public|protected void set变量名(类型 参数名) 合法性检查并赋值; =,5静态域(static) 用static修饰的变量静态变量(

5、静态域)。 静态变量不属于任何一个类的具体对象,而是所有对象共享。,访问静态变量: 类名.静态变 对象名.静态变量,例3.4 演示static变量的含义和使用。,6最终域(final) final修饰的变量常量,通常定义为static 初始化后就不能重新再赋值。 定义格式如下: public static final 类型 常量名=初始值;,7域的声明格式 public | protected | private /访问权限 static /静态的 final /最终的, transient /瞬态的串行化对象时将忽略它 volatile /易逝的用于修饰多个并发线程的共享变量 类型 变量名;

6、,例 3.1 定义类和使用类对象 public class TestBirthday public static void main(String args) Birthday obj1=new Birthday(); obj1.show(); Birthday obj2=new Birthday(1990,11,12); obj2.show(); ,class Birthday int year, month, day;/分别表示年月日 Birthday( ) ,Birthday(int year, int month, int day) this.year=year; this.month

7、=month; this.day=day; void show() System.out.println(“出生年月:“+year+“年“+month+“月“+day+“日“); ,例 3.2 类对象作为类的域 /TestPerson.java public class TestPerson public static void main(String args) Person obj=new Person(“张三“, 男, new Birthday(1988,8,8), 1.75); obj.show();,System.out.println(“=改变类中变量的取值=“); obj.nam

8、e=“王立“; obj.birth=new Birthday(1988,1,20); obj.birth.show(); obj.show(); ,例3.3 类外部访问类的私有域编译错误 /TestPerson.java public class TestPerson public static void main(String args) Person obj=new Person(“张三“, 男, new Birthday(1988,8,8), 1.75); obj.show();,System.out.println(“=改变类中变量的取值=“); obj.name=“王立“; obj.

9、birth=new Birthday(1988,1,20); obj.show(); ,例 3.4 static变量的含义和使用 /TestCar.java public class TestCar public static void main(String args) Car obj1=new Car(); Car obj2=new Car(); Car obj3=new Car();,System.out.println(“创建Car类对象的个数:“); System.out.println(“Car.counter=“+Car.counter); System.out.println(

10、“obj1.counter=“+obj1.counter); System.out.println(“obj2.counter=“+obj2.counter); System.out.println(“obj3.counter=“+obj3.counter); ,3.1.4 静态方法、抽象方法和最终方法 1方法的访问控制修饰符与变量一样,public private protected 缺省的(没有访问控制修饰符),2静态(static)方法 类方法。 调用静态方法: 类名.静态方法,静态方法中只能处理静态变量。 静态方法中只能调用静态方法。 静态变量和静态方法不能有this引用。,3最终(f

11、inal)方法 防止子类重新定义继承自父类的方法。,4抽象(abstract)方法 抽象方法只有方法头,没有方法体,以一个分号结束。,例如: public abstract double area(double x,double y);,抽象方法的声明通常出现的抽象类和接口中。 方法修饰符abstract和final不可能同时使用。,5方法的定义格式 public | protected | private /访问控制级别 static /类方法 final | abstract /不能同时使用 native /本地方法 synchronized /同步方法,返回值类型 方法名(参数列表) t

12、hrows 异常 .; ,关键字synchronized和native都不能与abstract同时使用。,例3.5 静态方法中不能使用非静态量、方法 /UseStaticVar.java public class UseStaticVar public int x=9; public static void main(String args) System.out.println(“x=“+x);,add(1); System.out.println(“x=“+x); public void add(int x) this.x+=x; ,3.1.5 构造方法 1构造方法规则 名字必须与类名相同

13、; 不能有返回值类型;,访问控制修饰符有(规则与前面讲的一样): public protected private 缺省的,构造方法不能用static修饰; 类中无任何构造方法,编译器会自动生成无参数的构造方法;,类中定义构造方法,编译器不会自动生成默认构造方法; 构造方法重载;,重载的构造方法通过this()调用(必须第一条语句); 子类构造方法中通过super()调用其直接父类的构造方法(必须第一条语句)。,2构造方法的重载 类中定义多个参数列表不同的构造方法构造方法重载; 重载的构造方法通过this()可相互调用(必须第一条语句)。,例 3.6 构造方法的重载和相互调用 /TestBir

14、thday.java public class TestBirthday public static void main(String args) ,Birthday obj1=new Birthday(); System.out.println(obj1.toString(); Birthday obj2=new Birthday(1990,11,12); System.out.println(obj2.toString(); ,3.1.6 关键字this 类定义中使用this代表类对象自身。 this.类的实例变量名 this.实例方法名 “实例”是为了区分“静态”,静态变量和静态方法不能

15、通过this做前缀来使用。 重载的构造方法通过this()相互调用。,例 3.7 this的使用 /TestBirthday.java public class TestBirthday public static void main(String args) Birthday obj=new Birthday(1990,11,12);,System.out.println(obj.toString(); String str=obj.setYear(1988).setMonth(8).setDay(28). toString(); System.out.println(str); ,3.1.7 抽象和封装 数据封装(隐蔽实现细节)的实现,通过

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号