java中的对象、类、包和接口.ppt
《java中的对象、类、包和接口.ppt》由会员分享,可在线阅读,更多相关《java中的对象、类、包和接口.ppt(133页珍藏版)》请在三一办公上搜索。
1、1,第四章 java 中的对象、类、包和接口,4.1 初识对象和类4.2 对象的生命周期4.3 创建类4.4 包的创建和使用4.5 类成员的访问控制 4.6 类成员与实例成员 4.7 继承4.8 嵌入类 Inner Classes4.9 接口,2,4.1 初识对象和类,例1.定义了一个名为SimplePoint 的类public class SimplePoint public int x=0;/x为成员变量 public int y=0;/y为成员变量,第四章 java 中的对象、类、包和接口,3,4.1 初识对象和类,当创建一个新的对象时(对该类实例化),就会为该对象及其成员分配空间,同时
2、对成员变量进行初始化。,第四章 java 中的对象、类、包和接口,4,4.1 初识对象和类,例2 定义一个名为SimpleRectangle类public class SimpleRectangle public int width=0;public int height=0;public SimplePoint origin=new SimplePoint();,第四章 java 中的对象、类、包和接口,5,4.1 初识对象和类,当初始化origin成员时将调用代码new SimplePoint()创建一个SimplePoint对象。,第四章 java 中的对象、类、包和接口,6,4.1 初
3、识对象和类,例3 public class Point public int x=0;public int y=0;/a constructor!public Point(int x,int y)this.x=x;this.y=y;见例题:Rectangle.java,new Point(44,78),第四章 java 中的对象、类、包和接口,7,4.2 对象的生命周期,创建对象 对象的使用 清除对象,第四章 java 中的对象、类、包和接口,8,4.2 对象的生命周期,创建对象 通过创建一个对象可创建类的一个实例,也称实例化此类。例Rectangle rect=new Rectangle()
4、;创建一个对象包括三部分:声名部分 实例化部分 初始化部分,第四章 java 中的对象、类、包和接口,9,4.2 对象的生命周期1.创建对象,声名对象 声明对象的名字和类型,用类名来说明对象的类型。格式:type name说明:声明对象的规则与变量声明规则相同,但对象变量是引用类型;在java里类和接口都可以作为数据类型来使用;对象声明通知编译器name将用来引用type类型的变量 对象声明并不创建新的对象。例:Rectangle rect;,第四章 java 中的对象、类、包和接口,10,4.2 对象的生命周期1.创建对象,实例化对象 操作符new通过为新对象分配存储空间来实例化类格式:ne
5、w 类的构造方法例new Rectangle(100,200);Rectangle rect=new Rectangle(100,200);,第四章 java 中的对象、类、包和接口,11,4.2 对象的生命周期1.创建对象,初始化对象每个类都至少有一个构造函数,当创建对象时调用指定的构造函数来初始化对象例Rectangle rect=new Rectangle();Rectangle rect=new Rectangle(100,200);Rectangle rect=new Rectangle(new Point(44,78);注:在定义类时如未定义构造函数系统,java会自动构造一个没有
6、参数的构造函数。,第四章 java 中的对象、类、包和接口,12,4.2 对象的生命周期2.对象的使用,使用对象包括:从对象中获得信息 改变对象的状态 使对象执行某些操作 实现途径:引用对象的变量 调用对象的方法,第四章 java 中的对象、类、包和接口,13,4.2 对象的生命周期 2.对象的使用,引用对象的变量 引用对象变量的格式:对象引用.对象的变量例:rect.origin=new Point(15,37);area=rect.height*rect.width;height=new Rectangle().height;说明:可以像使用其它变量一样来使用对象的变量。例如:area=r
7、ect1.height*rect1.width,第四章 java 中的对象、类、包和接口,14,4.2 对象的生命周期 2.对象的使用,调用对象的方法 格式:对象引用.对象方法名();或 对象引用.对象方法名(参数表);例rect.move(15,37);new Rectangle(100,50).area()说明:对于返回值的方法,方法调用可以用于表达式中 调用一个对象的方法即是向该对象发送一个消息.,第四章 java 中的对象、类、包和接口,15,4.2 对象的生命周期3.清除对象,java运行使系统有一个垃圾回收进程负责清除不再使用的对象。垃圾回收器垃圾回收器定期扫描内存,对于被应用的对
8、象加上标记,按可能的路径扫描结束后清除未加标记的对象。被回收的对象是:不再被任何引用变量引用的对象引用变量自动放弃人为地将引用变量置为null,第四章 java 中的对象、类、包和接口,16,4.2 对象的生命周期3.清除对象,垃圾回收器当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行。否则垃圾收集器在系统空闲时异步地执行。,第四章 java 中的对象、类、包和接口,17,4.2 对象的生命周期3.清除对象,finialize()方法在一个对象被垃圾回收器回收之前,java解释器会自动调用对象的finalize()方法。通常在该方法内包括了释放系
9、统资源的代码段。finalize()方法在类java.lang.Object中实现如:protected void finalize()throws throwable/clean up code for this classsuper.finalize();/清除对象使用的所有资源,包括由于继/承关系而获得的资源,第四章 java 中的对象、类、包和接口,18,4.3 创建类,4.3.1 类声明 4.3.2 类体(Class Body),第四章 java 中的对象、类、包和接口,19,4.3 创建类,一个类包括两部分:类声明类体见右图:,第四章 java 中的对象、类、包和接口,20,4.3
10、 创建类 4.3.1 类声明,在类的声明里,说明了类的名字及其它属性。下图说明了类声明中包含的各部分:,第四章 java 中的对象、类、包和接口,21,4.3 创建类 4.3.1 类声明,说明:在类声明中,public、abstract、final为类的修饰符,是可选的,缺省时说明所定义的类是非public、非abstract、非final的类。,第四章 java 中的对象、类、包和接口,22,4.3 创建类 4.3.2 类体,类体为该类的对象提供了在生存期内需要的所有代码。包括以下几部分:构造方法(constructor)成员变量(member variable)的声明方法(Method)的
11、实现,第四章 java 中的对象、类、包和接口,23,4.3 创建类 4.3.2 类体,1.构造方法定义:类中用来初始化新建的对象的方法称构造方法。特点:无返回类型,方法名与类名相同,第四章 java 中的对象、类、包和接口,24,4.3 创建类 4.3.2 类体,1.构造方法说明:构造方法可被重载。例如:public class Thing private int x;public Thing()x=47;public Thing(int new_ x)x=new_ x;,第四章 java 中的对象、类、包和接口,25,4.3 创建类 4.3.2 类体,1.构造方法说明:其中变量和方法称为类
12、的成员(成员变量和成员方法),而构造方法不是类的成员。每个类中至少有一个构造方法。定义类时如未定义构造方法,运行时系统会为该类自动定义缺省的构造方法。没有任何参数 没有body不做任何事情,第四章 java 中的对象、类、包和接口,26,4.3 创建类 4.3.2 类体,1.构造方法说明:构造方法只能由new运算符调用构造方法同样也有访问权限的限制 publicprotectedprivatepackage,第四章 java 中的对象、类、包和接口,27,4.3 创建类 4.3.2 类体,2.成员变量的声明 成员变量在类体中声明,但在构造方法和方法之外。classDeclaration mem
13、ber variable declarationsconstructor declarationsmethod declarations,第四章 java 中的对象、类、包和接口,28,4.3 创建类 4.3.2 类体,2.成员变量的声明 声明格式:,第四章 java 中的对象、类、包和接口,29,4.3 创建类 4.3.2 类体,2.成员变量的声明 说明:accessLevel:对成员变量的访问控制,有四级访问控制:public,protected,package,private。缺省时为package。static:说明该变量为类变量,缺省时为实例变量。final:指明该变量的值不能被改变
14、,既该变量为常量。例 final double AVOGADRO=6.023e23;,第四章 java 中的对象、类、包和接口,30,4.3 创建类 4.3.2 类体,2.成员变量的声明 说明:type:用于说明成员变量的类型。可以是基本数据类型,如int,float,boolean 等,也可以是引用类型,如数组名,类或接口名。在同一个类中不允许有同名的成员变量,但允许成员变量名和方法名相同。,第四章 java 中的对象、类、包和接口,31,4.3 创建类 4.3.2 类体,2.成员变量的声明 例子:public class SliderDemo public static final int
15、 FPS_INIT=15;private int frameNumber=0;protected int delay;boolean frozen=false Timer timer;private String name=Fred Flintstone;,第四章 java 中的对象、类、包和接口,32,4.3 创建类 4.3.2 类体,3.方法的实现 与类相似,方法的声明也包括两部分:方法声明和方法体:如下图所示:,第四章 java 中的对象、类、包和接口,33,4.3 创建类 4.3.2 类体,3.方法的实现 方法声明:定义方法的属性,如访问控制级,返回值的类型,方法名字,参数等,第四章
16、java 中的对象、类、包和接口,34,4.3 创建类 4.3.2 类体,3.方法的实现 返回值:返回值的数据类型必须和声明中的返回类型一致,或者完全相同,或者是它的一个子类。当一个方法不需要返回值时,返回类型为void。,第四章 java 中的对象、类、包和接口,public Number returnANumber().,35,4.3 创建类 4.3.2 类体,3.方法的实现 参数传递:1)参数的类型可以是:简单数据类型:值传送。方法接收参数的值,但并不能改变这些参数的值 引用数据类型(数组类型、类或接口):地址传递。传递给方法的是数据在内存中的地址,见例题:ArgumentTest.ja
17、va,第四章 java 中的对象、类、包和接口,36,4.3 创建类 4.3.2 类体,3.方法的实现 参数传递:2)参数的命名:参数名字可以与类的成员变量 相同,但参数名会隐藏成员。变量为了区别参数与类的成员变量,我们必须使用thisclass Circle int x,y,radius;public Circle(int x,int y,int radius)this.x=x;this.y=y;this.radius=radius;,第四章 java 中的对象、类、包和接口,37,4.3 创建类 4.3.2 类体,3.方法的实现 方法体:定义:方法的实现部分,包括局部变量的声明和所有合法的
18、java语句。局部变量:在方法体内定义的变量称局部变量,局部变量的作用域限于方法内。如果局部变量的名字和类的成员变量的名字相同,则类的成员变量被隐藏可以使用this 调用当前类的成员变量。,第四章 java 中的对象、类、包和接口,38,4.3 创建类 4.3.2 类体,3.方法的实现 例题:class Variable int x=0,y=0,z=0;/class member variables void init(int x,int y)this.x=x;this.y=y;int z=5;/local variable System.out.println(*in init*);Syst
19、em.out.println(x=+x+y=+y+z=+z);,第四章 java 中的对象、类、包和接口,39,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,定义:包是一组相关的类或接口的集合,它提供了访问保护和名字空间管理。Java编译器使用文件系统目录来保存包。,40,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,使用包的好处:程序员能很容易确定同一包中的类是相互关联的。程序员能很方便地了解到在哪里可以找到能完成特定功能的类 由于每个包都创建了一个名字空间,个人创建的类名不会和其它包中的类名名发生冲突 可以使同一包中的类彼此不加限制地访问,而同时对其
20、它包中的类提供访问控制。,41,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,1.创建包格式:package pkg1.pkg2.pkg3;package语句必须放在原文件的开始处。例如:java.io java.util java.lang java.applet javax.swingpackage graphics;public class Circle.,42,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,1.创建包说明:package的作用域是整个源文件 如果在同一个源文件中定义了多个类,最多仅可以有一个类用public修饰,且源文件名必须与该
21、类名相同 当未使用package语句时,类和接口放在无名缺省包里 包的命名习惯:将Internet域名作为包名 例如:.,43,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,2.包的使用 包中的所有类中只有public类能被包外部的类访问。有三种方法访问包中的类:1)使用长名字引用包中的公共成员 即在类名前注明包名例graphics.Rectanglegraphics.Rectangle myRect=new graphics.Rectangle();,44,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,2.包的使用引进包的公共成员 在文件的开始处使用i
22、mport语句将指定的成员引进到当前文件中.格式:import pkg1.pkg2.类名例import graphics.Circle;Circle myCircle=new Circle();,45,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,2.包的使用3)引进整个包 使用import语句引进包中的所有类和接口格式:import pkg1.pkg2.*例import graphics.*;现在可以使用短名字来引用类graphics包中的所有类.Circle myCircle=new Circle();Rectangle myRectangle=new Rectangl
23、e();,46,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,3.源文件和类文件的管理 JDK利用文件系统的层次结构来管理源文件和类文件。源文件和类文件所在的目录名应与其中的类所在的包名对应,编译器和解释器按此机制来查找类。如:,47,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,3.源文件和类文件的管理,48,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,3.源文件和类文件的管理 当源文件中有多个类定义时,编译后将产生多个类文件。,49,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,3.源文件和类文件的管理 虽然
24、类文件所在的目录序列必须与包名对应,但不一定与源文件在相同的目录中。,javac d d:classes Rectangle.java,50,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,3.源文件和类文件的管理 说明:包对应于文件系统的目录管理方式可以帮助编译器和解释器找到程序中的类和接口存放的地方。CLASSPATH指出用户的类库所在目录,在类路径(CLASSPATH)中只需指出包路径之上的顶层路径CLASSPATH=.;d:classes,51,4.4 包的创建和使用,第四章 java 中的对象、类、包和接口,3.源文件和类文件的管理 设置类路径的方法设置环境变量CL
25、ASSPATH(不推荐)set classpath=.;d:classes在调用编译器或解释器时使用-classpath选项 例 java-classpath d:classes com.taranis.grathpics.Test 见例子:包的使用.txt,52,4.5 类成员的访问控制,在java语言中对类的成员有四种级别的访问控制:private,protected,public,package.如定义类时未指定访问控制说明符,则其访问控制级别为package。,第四章 java 中的对象、类、包和接口,53,4.5 类成员的访问控制,第四章 java 中的对象、类、包和接口,例题见:访
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 中的 对象 接口
链接地址:https://www.31ppt.com/p-6509633.html