Java语言最新实用教程(第4课).ppt_第1页
Java语言最新实用教程(第4课).ppt_第2页
Java语言最新实用教程(第4课).ppt_第3页
Java语言最新实用教程(第4课).ppt_第4页
Java语言最新实用教程(第4课).ppt_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

java语言最新实用案例教程(第2版),第四课 第3章 java面向对象程序设计 行政楼409,目录,面向对象基础 类与对象 访问控制 类变量、类常量和类方法 类的方法重载 类的继承 抽象类、接口及多态性 最终类和内部类 java枚举类型,3.1 面向对象(oo)的特性,面向对象编程主要体现下列三个特性 抽象 封装 继承与派生 多态,3.2 类,类是组成java程序的基本要素。 类封装了一类对象的状态和方法。 类是用来定义对象的模板。 要学习java编程就必须学会怎样去编写类 即怎样用java的语法去描述一类事物共有的属性和行为。 对象的属性通过变量来刻画,对象的行为通过方法来体现。 类的实现包括两部分:类声明和类体。 class 类名 类体的内容 ,3.2.1 类声明,修饰符 class extends 父类名 implements 接口列表 修饰符用于指定类的访问权限,可选值为public、 abstract和final。 类名用于指定类的名称,类名必须是合法的java标识符。 extends 父类名用于指定要继承参数。 implements 接口列表用于指定该类实现的所有接口。 给类命名时,遵守下列编程风格 1.如果类名使用拉丁字母,那么名字的首字母使用大写字母,当类名由几个“单词”复合而成时,每个单词的首字母使用大写。 2.类名最好容易识别、见名知意。 3.符合命名规范,3.2.2 类体,类声明之后的一对大括号“”,“”以及它们之间的内容称做类体 类体的内容由两部分构: 一部分是变量的定义,用来刻画属性; 另一部分是方法的定义,用来刻画功能。,3.2.4 方法,类的类体由两部分组成: 变量的定义和方法的定义。 方法的定义包括两部分:方法声明和方法体。 方法参数在整个方法内有效 方法内定义的局部变量从它定义位置之后开始有效 复合语句中,局部变量的有效范围是该复合语句 循环语句中,局部变量的有效范围是该循环语句,修饰符 ( 参数列表) 方法体 ,class a void f() int m=10,sum=0; if (m9) int z=10; /z仅在复合语句中有效 z=2*m+z; for(int i=0;im;i+) sum=sum+i; /i仅在循环语句中有效 m=sum; /合法,因为m和sum有效 z=i+sum; /不合法,因为i和z已无效 ,3.3 构造方法与对象的创建,类是面向对象语言中最重用的一种数据类型,类声明的变量被称作对象。 和基本数据类型不同,在用类声明对象后,还必须要创建对象,即为声明的对象分配变量(确定对象所具有的属性),当使用一个类创建一个对象时,也称给出了这个类的一个实例。 类是创建对象的“模板”,没有类就没有对象。 构造方法和对象的创建密切相关 。,3.3.1 构造方法,构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同 没有返回值,也不需要使用关键字void进行标识。 用于对对象中的所有成员变量进行初始化,在创建对象时立即被调用。 允许一个类中编写若干个构造方法,但必须保证他们的参数不同,即参数的个数不同,或者是参数的类型不同。(构造方法重载) 需要注意的是 (1) 类中没有编写构造方法,系统会默认该类只有一个构造方法 (2)如果类里定义了一个或多个构造方法,那么java不提供默认的,对象生命周期,类是创建对象的模板。对象是类的一实例。 一个对象在java语言中的生命周期包括3个阶段: 创建对象 使用对象 销毁对象,example3_1.java,class xiyoujirenwu float height,weight; 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) 对象的声明。 一般格式为: 类的名字 对象名字; 如: people zhangping;,(2)为声明的对象分配内存 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的,构造方法的名字必须和类名相同)。如: zhangping=new people();,声明对象时的内存模型,当用xiyoujirenwu类声明一个变量,即对象zhubajie时,如例子1中的对象zhubajie: xiyoujirenwu zhubajie; 内存模型如左图所示,对象分配内存后的内存模型,当系统见到: zhubajie=new xiyoujirenwu(); 时,就会做两件事: 为height,weight,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通过使用运算符“.” 对象操作自己的变量(对象的属性) 2使用运算符“.”,对象调用类中的方法 (对象的功能) 对象.成员变量 对象.成员方法(),3.3.4 对象的引用和实体,当用类创建一个对象时,类中的成员变量在分配内存空间,这些内存空间称作该对象的实体或对象的变量,而对象中存放着引用。 point p1=new point(5,15); point p2=new point(8,18); 一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。 p2=p1,销毁对象,java提供的垃圾回收机制 java提供了一个名为finalize()的方法,用于在对象被垃圾回收机制销毁之前执行一些资源回收工作,由垃圾回收系统调用,可以重写该方法。但是垃圾回收系统的运行是不可预测的 finalize()方法没有任何参数和返回值,每个类有且只有一个finalize()方法。 java虚拟机立刻执行“垃圾收集”操作,system.gc();,3.4 实例成员与类成员 3.4.1 实例变量和类变量的声明,在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。,3.4.2 实例变量和类变量的区别,1不同对象的实例变量互不相同 2所有对象共享类变量 3通过类名直接访问类变量,3.4.3 实例方法和类方法的定义,类中的方法也可分为实例方法和类方法。方法声明时,方法类型前面不加关键字static修饰的是实例方法、加static关键字修饰的是类方法(静态方法)。,3.4.4 实例方法和类方法的区别,1对象调用实例方法 当对象调用实例方法时,该方法中出现的实例变量就是分配给该对象的实例变量;该方法中出现的类变量也是分配给该对象的变量,只不过这个变量和所有的其他对象共享而已。 2类名调用类方法 从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。和实例方法不同的是,类方法不可以操作实例变量,这是因为在类创建对象之前,实例成员变量还没有分配内存。,3.4.5 this关键字,this是java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。 this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。 例10 实例方法必须只能通过对象来调用,不能用类名来调用。当thi

温馨提示

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

评论

0/150

提交评论