第三章节类和对象概述幻灯片

上传人:E**** 文档编号:90217990 上传时间:2019-06-09 格式:PPT 页数:39 大小:274KB
返回 下载 相关 举报
第三章节类和对象概述幻灯片_第1页
第1页 / 共39页
第三章节类和对象概述幻灯片_第2页
第2页 / 共39页
第三章节类和对象概述幻灯片_第3页
第3页 / 共39页
第三章节类和对象概述幻灯片_第4页
第4页 / 共39页
第三章节类和对象概述幻灯片_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第三章节类和对象概述幻灯片》由会员分享,可在线阅读,更多相关《第三章节类和对象概述幻灯片(39页珍藏版)》请在金锄头文库上搜索。

1、第三章 Java 类与对象,学习目标: 理解类与对象的概念 类定义、创建对象、使用对象 对象的初始化与构造函数 类、域、方法的修饰符 访问控制符,类与对象的概念,类是一个抽象的概念,是从众多事物中抽象出最本质的特征,把具有共同性质的事物归为一类,比如人就是一个类,学生也是一个类,他们都代表一类事物,而不是一个具体的个体。 对象是类的实例,对象具有所属类的特征具有自己的一组静态特征和一组动态特征,如张三是人这个类的一个具体对象,他具有姓名、性别、年龄等静态属性,还具有会学习、娱乐、运动等动态行为。,类与对象的关系,在面向对象的程序设计中,对象被称作类的一个实例(instance),而类是对象的模

2、板(template)。就好像汽车的设计图纸与汽车的关系一样。 面向对象的程序设计,重点是类的设计,而不是对象的设计。,Java中的类与自定义类,学习java的两个方面:语法规则 、类库 系统定义的类 用户自定义类,自定义类,定义类的过程就是定义类的属性和服务的过程; 类的属性就是类的静态属性的简称,指类内包含的各项数据。 类的服务则被称为成员函数或方法。 类的一般语法结构: 修饰符 class 类名 extends 父类 implements 接口名 /类头的定义 数据成员变量声明; 成员函数声明; ,自定义类,类头部分关键字class标志着一 个类定义的开始,class后面跟着新 定义类的

3、类名,类名由编程者命名, 命名原则要遵从Java对标识符的有关 规定,并体现该类主要功能或作用。类名通常首字母大写。,练习: 编写一个三角形类,该类的静态属性包括三角形的三条边长;动态行为包括三角形计算周长的函数、三角形计算面积的函数。,对象初始化及构造函数,构造函数:把若干个赋初值的语句组合成一个方法在创建对象时一次执行,这个方法就是构造函数。 创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。 若无用户定义的构造函数,即为缺省,系统为此类缺省定义一个空的构造函数,无形参,无任何具体语句,不完成任何操作。这时对象的成员变量为缺省值。,构造函数,构造函数的特殊性: (构造函数是类的一

4、种特殊方法) 构造函数与类同名; 构造函数没有返回类型,不能在方法中return返回一个值; 一般不能显示地调用; 构造函数可以重载,可以继承。,构造函数,注意: 在定义构造函数时返回类型加了“void”,这个方法就不再被自动调用了。 只要定义了构造函数(即加了形参)编译器就不会自动产生不带参数的构造函数。,对象的创建,Java程序定义类的最终目的是使用它,通过创建该类的对象来使用。 创建对象的一般格式 类名 新建对象名 = new 构造函数();,对象的使用,创建对象的内存分配 对象是以类为模板创建的具体实例,每个对象的内存空间中都保存有自己的成员和方法 创建对象后,使用“对象名.对象成员”

5、的格式来访问。对象的成员包括属性和方法。,类的修饰符abstract,类的修饰符包括: 抽象abstract、最终final 公共public及无修饰符。 1.abstract 抽象类: 没有具体对象的概念类 抽象类是它的所有子类的公共属性的集合。例如:电话卡类 abstract class phonecard double balance; void performdial() ,类的修饰符final,2、final 最终类 不能有子类的类。例如:System类 public final class System extends Object 注意: abstract 和 final 不能同

6、时修饰一个类。 abstract类没有具体的对象需要派生出子类后创建子类的对象因此它必须被继承,而final类不能有子类,矛盾。,数据成员修饰符,数据成员修饰符包括: 静态static、最终final、 易失volatile 1、static静态数据成员 特点:此数据成员仅属于类,不属于具体的任何的对象。 即是类的数据成员。 换句话说,对于该类的任何一个具体对象而言,静态属性是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,同样任何一个类的对象去修改它时,也都是在对同一个内存单元做操作。,静态初始化器,静态初始化器是由关键字static引导的一对大括号括起的语句组。用来完成

7、初始化工作的。 静态初始化器与构造函数的三点区别: (1)构造函数是对每个新创建的对象初始化,而静态初始化器是对每个类进行初始化;,静态初始化器(续),(2)构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的; (3)不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。,数据成员域修饰符final,2. final 数据成员 final:修饰常量的修饰符,一个数据成员声明为final,那么它的取值在程序的整个执行过程中都不会改变,也就是一个常量。,域修饰符final,用final修饰符说明常量时,需要注意以下几点:

8、1)需要说明常量的数据类型; 2)需要同时指出常量的具体取值; 3)因为所有类对象的常量成员,其数值都固定一致,为了节省空间,常量通常都被声明为static。 例如:static final double pi=3.14;,数据成员修饰符volatile,3.volatile 数据成员 若一个类的属性被volatile所修饰,说明这个属性可能同时被几个线程所控制和修改。即这个属性不仅仅被当前程序所掌握,在运行过程中可能存在其他的未知的程序的操作来影响和改变该属性的取值,所以在使用当中应该特别留意这些其他影响因素。,数据成员修饰符volatile,通常,volatile用来修饰接受外部输入的数据

9、 例如:表示当前时间的变量将被系统的后台线程随时修改,以保证程序中取到的总是最新的当前的系统时间,可以被修饰为volatile .,方法修饰符,方法修饰符包括: 抽象abstract、静态static、 最终final、本地native、 同步synchronized,方法修饰符abstract,abstract抽象方法 abstract抽象方法是一种仅有方法头,而没有具体的方法体和操作实现的方法。 例如 abstract void performDial(); 注意: 所有的抽象方法必须存在于抽象类中 具体的实现方法由各个子类来实现,且必须将所有的抽象方法实现。,方法修饰符static,2.

10、 static静态方法 用static修饰符修饰的方法是属于整个类的方法。 static至少有三重含义: 调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名; 非static的方法是属于某个对象的方法,在这个对象创建时对象的方法在内存中拥有自己专用的代码段;而static的方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有; static方法只能处理static类型的数据。,方法修饰符final,3、final最终方法 final修饰符所修饰的类方法,是功能和内部语句都不能被更改的最终方法。即是不能被当前类的子类重载的方法。 采用final方法,可

11、以固定这个方法所对应的具体操作,可以防止子类对父类关键方法的错误的重定义,保证了程序的安全性和正确性。 注:所有已被private修饰符限定为私有的方法,以及所有包含在final类中的方法,都被缺省地认为是final的。,方法修饰符native,4、native本地方法 native修饰符一般用来声明用其他语言写方法体并具体实现方法功能的特殊的方法。其他语言包括C,C+,fortran,汇编等。 由于native的方法的方法体使用其他语言在程序外部写成,所以所有的native方法都没有方法体,而用一个分号代替。 native void a();,方法修饰符native(续),在java中使用其

12、他语言编写模块作为类方法, 目的有两个: 一、充分利用已经存在的程序功能模块和避 免重复工作。 二、可以利用native方法来提高运算速度。,方法修饰符synchronized,5、synchronized同步方法 synchronized修饰符主要用于多线程共存的程序中的协调和同步 被synchronized 修饰的方法将当前类对象(此类的所有对象)或当前对象加锁。即在同一时间只能有一个线程调用该方法,其他调用该方法的线程进入阻塞状态。,访问控制符,公共访问控制符public 缺省访问控制符 私有访问控制符private 保护访问控制符protected 私有保护访问控制符private p

13、rotected 类的访问控制符有public 和缺省控制符、抽象abstract、最终final 数据和方法的访问控制符有public、private、protected、private protected,访问控制符public,1、public 公共访问控制符 对于同一个包中的类可以不需任何说明而方便地互相访问和引用。 在不同包中的类,只有它们都声明为public时,然后再在程序头部声明import后才可以被访问和引用相应的类。,访问控制符public(续),注:用public修饰的类的属性称为公共属性,如果公共属性属于一个公共类,则它可以被所有的其他类所引用。 public修饰符会造成

14、安全性和数据封装性下降,应尽量减少public属性的使用。,访问控制符public(续),一个类作为整体对程序的其他部分可见,并不能代表类内的所有属性和方法也同时对程序的其他部分可见,前者只是后者的必要条件,类的属性和方法能否为所有其他类所访问,还要看这些属性和方法自己的访问控制符。,访问控制符(缺省),2、缺省访问控制符 缺省访问控制符规定该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用。这种特性又称为包访问性。 类内的属性和方法如果没有访问控制符来限定,也说明它们具有包访问性,可以被同一个包中的其他类所访问和调用。,访问控制符private,3、private私有访问控制符

15、用private修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类,包括该类的子类来获取和引用。 当其他类想要获取这些私有成员时,需要借助于类的方法来实现。,访问控制符protected,4、protected 保护访问控制符 用protected修饰的成员变量可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类。 使用protected修饰符的主要作用是允许其他包中的它的子类来访问父类的特定属性。,访问控制符private protected,5、private protected私有保护访问控制符 Private和protected按顺序连用构成一个完

16、整的访问控制符:私有保护访问控制符。 用此修饰符的成员变量可以被两种类访问和引用:一种是该类本身;二是该类的所有子类,不管这些子类是否与该类在同一个包中。,类、属性、方法的访问控制,小结,1、java 中的类(系统类 用户自定义类) 2、创建类的实例对象,使用对象 3、类 、方法、 数据成员的访问控制与非访问控制修饰符,作业,编写一个矩形类: 1.具有两个数据成员,一个代表长,一个代表宽; 2. 要求有两个构造函数,一个不带任何参数,一个带两个参数,分别初始化长和宽; 一个求矩形周长的函数; 一个求矩形面积的函数; 3. 要求在Application程序中,定义一个矩形类的对象,计算该矩形类的周长和面积。,

展开阅读全文
相关资源
相关搜索

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

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