java语言最新实用教程(第4课)课件

上传人:aa****6 文档编号:54564572 上传时间:2018-09-15 格式:PPT 页数:26 大小:84.50KB
返回 下载 相关 举报
java语言最新实用教程(第4课)课件_第1页
第1页 / 共26页
java语言最新实用教程(第4课)课件_第2页
第2页 / 共26页
java语言最新实用教程(第4课)课件_第3页
第3页 / 共26页
java语言最新实用教程(第4课)课件_第4页
第4页 / 共26页
java语言最新实用教程(第4课)课件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《java语言最新实用教程(第4课)课件》由会员分享,可在线阅读,更多相关《java语言最新实用教程(第4课)课件(26页珍藏版)》请在金锄头文库上搜索。

1、Java语言最新实用案例教程(第2版),第四课第3章 Java面向对象程序设计行政楼409,目录,面向对象基础 类与对象 访问控制 类变量、类常量和类方法 类的方法重载 类的继承 抽象类、接口及多态性 最终类和内部类 Java枚举类型,3.1 面向对象(OO)的特性,面向对象编程主要体现下列三个特性抽象封装继承与派生多态,3.2 类,类是组成Java程序的基本要素。 类封装了一类对象的状态和方法。 类是用来定义对象的模板。 要学习Java编程就必须学会怎样去编写类 即怎样用Java的语法去描述一类事物共有的属性和行为。 对象的属性通过变量来刻画,对象的行为通过方法来体现。类的实现包括两部分:类

2、声明和类体。 class 类名 类体的内容 ,3.2.1 类声明,修饰符 class extends 父类名 implements 接口列表 修饰符用于指定类的访问权限,可选值为public、 abstract和final。 类名用于指定类的名称,类名必须是合法的Java标识符。 extends 父类名用于指定要继承参数。 implements 接口列表用于指定该类实现的所有接口。给类命名时,遵守下列编程风格 1.如果类名使用拉丁字母,那么名字的首字母使用大写字母,当类名由几个“单词”复合而成时,每个单词的首字母使用大写。 2.类名最好容易识别、见名知意。 3.符合命名规范,3.2.2 类体,

3、类声明之后的一对大括号“”,“”以及它们之间的内容称做类体 类体的内容由两部分构: 一部分是变量的定义,用来刻画属性; 另一部分是方法的定义,用来刻画功能。,3.2.4 方法,类的类体由两部分组成: 变量的定义和方法的定义。 方法的定义包括两部分:方法声明和方法体。 方法参数在整个方法内有效 方法内定义的局部变量从它定义位置之后开始有效 复合语句中,局部变量的有效范围是该复合语句 循环语句中,局部变量的有效范围是该循环语句,修饰符 ( 参数列表) 方法体 ,Class A void f() int m=10,sum=0;if (m9) int z=10; /z仅在复合语句中有效z=2*m+z;

4、for(int i=0;im;i+) sum=sum+i; /i仅在循环语句中有效m=sum; /合法,因为m和sum有效z=i+sum; /不合法,因为i和z已无效 ,3.3 构造方法与对象的创建,类是面向对象语言中最重用的一种数据类型,类声明的变量被称作对象。 和基本数据类型不同,在用类声明对象后,还必须要创建对象,即为声明的对象分配变量(确定对象所具有的属性),当使用一个类创建一个对象时,也称给出了这个类的一个实例。 类是创建对象的“模板”,没有类就没有对象。 构造方法和对象的创建密切相关 。,3.3.1 构造方法,构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同 没有返回

5、值,也不需要使用关键字void进行标识。 用于对对象中的所有成员变量进行初始化,在创建对象时立即被调用。 允许一个类中编写若干个构造方法,但必须保证他们的参数不同,即参数的个数不同,或者是参数的类型不同。(构造方法重载) 需要注意的是 (1) 类中没有编写构造方法,系统会默认该类只有一个构造方法 (2)如果类里定义了一个或多个构造方法,那么Java不提供默认的,对象生命周期,类是创建对象的模板。对象是类的一实例。 一个对象在Java语言中的生命周期包括3个阶段: 创建对象 使用对象 销毁对象,Example3_1.java,class XiyoujiRenwu float height,wei

6、ght;String head, ear,hand,foot, mouth;void speak(String s) System.out.println(s); public class Example5_1 public static void main(String args) XiyoujiRenwu zhubajie; /声明对象zhubajie=new XiyoujiRenwu(); /为对象分配内存,使用new 运算符和默认的构造方法 ,3.3.2 创建对象,创建一个对象包括对象的声明和为对象分配内存两个步骤。(1) 对象的声明。 一般格式为:类的名字 对象名字; 如: Peop

7、le zhangPing;,(2)为声明的对象分配内存使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的,构造方法的名字必须和类名相同)。如:zhangPing=new People();,声明对象时的内存模型,当用XiyoujiRenwu类声明一个变量,即对象zhubajie时,如例子1中的对象zhubajie:XiyoujiRenwu zhubajie;内存模型如左图所示,对象分配内存后的内存模型,当系统见到: zhubajie=new XiyoujiRenwu(); 时,就会做两件事: 为height,weight

8、,head,ear,mouth,hand,foot各个变量分配内存,即XiyoujiRenwu类的成员变量被分配内存空间,然后执行构造方法中的语句。 new运算符在为变量height,weight,head,ear,mouth,hand,foot分配内存后,将返回一个引用给对象变量zhubajie。,3.3.2 创建对象,1对象的声明 Lader lader ; 2.为声明的对象分配内存 lader =new Lader(); 3对象的内存模型 (1)声明对象时的内存模型 (2)对象分配内存后的内存模型 4创建多个不同的对象,3.3.3 使用对象,1通过使用运算符“.” 对象操作自己的变量(对

9、象的属性) 2使用运算符“.”,对象调用类中的方法(对象的功能) 对象.成员变量 对象.成员方法(),3.3.4 对象的引用和实体,当用类创建一个对象时,类中的成员变量在分配内存空间,这些内存空间称作该对象的实体或对象的变量,而对象中存放着引用。 Point p1=new Point(5,15); Point p2=new Point(8,18);一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。 p2=p1,销毁对象,Java提供的垃圾回收机制 Java提供了一个名为finalize()的方法,用于在对象被垃圾回收机制销毁之前执行一些资源回收工作,由垃圾回收系统调用,可以重

10、写该方法。但是垃圾回收系统的运行是不可预测的 finalize()方法没有任何参数和返回值,每个类有且只有一个finalize()方法。 Java虚拟机立刻执行“垃圾收集”操作,System.gc();,3.4 实例成员与类成员 3.4.1 实例变量和类变量的声明,在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。,3.4.2 实例变量和类变量的区别,1不同对象的实例变量互不相同 2所有对象共享类变量 3通过类名直接访问类变量,3.4.3 实例方法和类方法的定义,类中的方法也可分为实例方法和类方法。方法声明时,方法类型前面不

11、加关键字static修饰的是实例方法、加static关键字修饰的是类方法(静态方法)。,3.4.4 实例方法和类方法的区别,1对象调用实例方法当对象调用实例方法时,该方法中出现的实例变量就是分配给该对象的实例变量;该方法中出现的类变量也是分配给该对象的变量,只不过这个变量和所有的其他对象共享而已。 2类名调用类方法从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。和实例方法不同的是,类方法不可以操作实例变量,这是因为在类创建对象之前,实例成员变量还没有分配内存。,3.4.5 this关键字,this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。 this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。 例10实例方法必须只能通过对象来调用,不能用类名来调用。当this关键字出现实例方法中时,代表正在调用该方法的当前对象。 实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,this.成员变量; 当static成员变量在实例方法中出现时, 类名.成员变量;,3.5 方法重载与多态,方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。,

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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