Java 程序设计 第5章Java类

上传人:E**** 文档编号:89395518 上传时间:2019-05-24 格式:PPT 页数:62 大小:2.05MB
返回 下载 相关 举报
Java 程序设计 第5章Java类_第1页
第1页 / 共62页
Java 程序设计 第5章Java类_第2页
第2页 / 共62页
Java 程序设计 第5章Java类_第3页
第3页 / 共62页
Java 程序设计 第5章Java类_第4页
第4页 / 共62页
Java 程序设计 第5章Java类_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《Java 程序设计 第5章Java类》由会员分享,可在线阅读,更多相关《Java 程序设计 第5章Java类(62页珍藏版)》请在金锄头文库上搜索。

1、第5章 Java类,5.1 类的定义和使用 5.2 Java类的封装性 5.3 对象的初始化 5.4 对象销毁机制 5.5 综合运用实例,5.1类的定义和使用,5.1.1类的定义,访问控制符修饰符 class 类名 extends 父类名 implements 接口名1,接口名2, 类体(包括数据成员、方法成员和初始化块); ,注意: (1)格式中中括号的内容属于可选项。 (2)访问控制符有public和缺省控制符两种,修饰符有 abstract、final两种。 (3)extends用来说明该类继承自哪个父类,而implements用 来说明该类实现哪些接口。子类和接口的概念和使用方法 会在

2、第6章介绍。,Java中类的访问控制符和修饰符( public 、 abstract 、 final ): 1、public类: 则该类所在源文件的文件名必须与该类名严格一致(包括字母的大小写),否则编译将会出错。也就是说一个Java源文件中只能定义一个public类。 例: public class Student class Test 保存这两个类的源文件名称为Student.java。 2、final类:最终类,不能用最终类生成子类。 3、abstract类:抽象类。 4、缺省访问控制类:访问控制符位置为空,缺省访问控制定义的类不能单独存储在源文件中。,5.1类的定义和使用,当一个源文件

3、被编译后将根据其中定义类的个数生成相应个数的class文件。 例: public class A class B class C 对于每个Java Application程序来说,程序的入口总是从主类开始。所谓主类是指包含了一个main方法的public类。 Java Application程序有且仅有一个主类。 类体由数据成员、方法成员和一些初始化块组成。,5.1类的定义和使用,保存这三个类的源文件名称为A.java(文件名由其中唯一的public类名决定),Java编译器对该文件编译后将会产生三个文件:A.class、B.class、C.class。,数据成员定义格式: 访问控制符 修饰符

4、 类型 变量名; 访问控制符有:public、protected、private及缺省访问控制。用来修饰变量的修饰符有:static、final、volatile等。,5.1类的定义和使用,static修饰的数据成员为类的静态数据成员,静态数据成员不依赖于该类的任何对象,访问时通过类名或该类的对象名直接访问。 final修饰符修饰的成员将变为常量,在定义时必须为其指定初值。 volatile修饰符将会使得该成员允许在多线程环境中被异步访问。 例: public class A static int num=0;/静态变量成员 final String name=new String(“类名:A

5、”);/定义常量 ,5.1类的定义和使用,5.1.2 方法成员的定义及重载,方法成员定义格式: 访问控制符 修饰符 方法返回值类型 方法名(参数表) 方法体; ,方法访问控制符与数据成员访问控制符一样,包括有:public、protected、private及缺省访问控制。 方法修饰符有:abstract、final、static、native、synchronized,5.1类的定义和使用,例: public class A static int num=0;/静态变量成员 final String name=new String(“类名:A”);/定义常量 public final Str

6、ing GetClassName()/最终方法,用于获取类名 return name; public static int Getnum() return num; /静态方法中只能访问类中的静态成员 ,5.1类的定义和使用,在同一个Java类中允许定义多个同名方法,则这些同名方法称为重载的方法。重载时这些方法的参数表必须在参数的类型、个数或顺序上加以区分。 例: public class B public void f() public void f(int i) public void f(float fl) public void f(int i,char ch) ,5.1类的定义和使用

7、,5.1.3 对象的创建,一般Java类的对象创建格式如下: new 类名(实参表) new运算返回所创建对象的一个引用,一般通过对象引用变量引用到具体的对象后再使用它去操作对象。因此要想操作或使用Java对象必须定义一个相应类型的对象引用变量,并将它引用到具体的某个对象。 定义对象引用变量和定义普通变量的方式一样,格式如下: 类名 对象引用变量名,例: public class A A aobj; /定义A型对象引用变量aobj aobj=new A(); /aobj引用到新创建的A型对象,5.1类的定义和使用,在访问控制允许的情况下,访问一个对象中成员的格式如下: 对象引用变量名.数据成员

8、 对象引用变量名.方法成员名(实参表) 或 对象数组名下标.数据成员 对象数组名下标.方法成员名(实参表),对于静态(static)成员既可以使用上面的方式访问也可以使用下面的方式访问: 类名.数据成员 类名.方法成员名(实参表),5.1类的定义和使用,下面定义一个学生类Student。 例: public class Student static int Num=0; /定义静态数据成员学号Num String name; /定义数据成员姓名name boolean sex; /定义数据成员性别sex,true代表性别是男性 int age; /定义数据成员年龄age public void

9、 SetName(String n)name=n public void SetSex(boolean s)sex=s; /设置性别 public void SetAge(int a)age=a; /设置年龄 public String GetName()return name; /获得姓名 public boolean GetSex()return sex; /获得性别 public int GetAge()return age; /获得年龄 static int GetNum ()return Num; ,5.1类的定义和使用,Student st1; st1=new Student();

10、 Student st2; st2=st1; st2=new Student(); Student st3=new Student(); st3=st2; st3=null; st2=null;,利用Student类创建对象如下:,5.1类的定义和使用,有时我们可能需要一组同类型的对象,即对象数组。创建对象数组必须先创建一个对象引用变量数组,之后为每个数组元素分别指定引用到的对象。 如: Student st=new Student10; /下面的for循环创建10个Student对象 for(int i=0;i10;i+) sti=new Student(); /为每个数组元素创建Stude

11、nt对象,成员的访问: st1.SetName(“张三”); /调用SetName方法 st3.age=20; /将st3引用到的对象的age成员赋值为20 st5.GetAge(); Student.GetNum(); /调用类Student中的静态方法GetNum(),回目录,5.2 Java类的封装性,5.2.1 类访问控制符,描述类的访问控制控制符有两种:public和缺省访问控制符。,前面我们知道Java中的每个源文件若有多个类定义,则被编译后将为每个类生成一个class文件,这些class文件将被放在同一目录中。在源文件中可以为这个目录指定目录名,也就是包名。若源文件中没有指定包名

12、,则这些class文件将放在源文件所在目录(编译器的默认包)下,一个目录下可以有多个public类文件。 一个类A的访问控制符若被指定为public,则该类可以被所有类使用。使用该类的类B与A如果不在同一目录(包)内,则在类B定义之前需先引入类A。 一个类的访问控制符若为空,则该类的访问控制为缺省访问控制。具有缺省访问控制符的类只能被它所在包的类使用。,5.2 Java类的封装性,例: /类A和类B的定义,文件A.java(假定A.class所在目录为X) package X; /对文件A.java编译后将在目录X下生成文件A.class和B.class public class A /公共类

13、A class B /定义缺省访问控制类B /类C定义,文件C.java放在X目录中 package X; /对文件C.java编译后将在目录X下生成文件C.class public class C /公共类C private A a; /类C中使用了类A定义一个对象引用变量a private B b; /类C中使用了类B定义一个对象引用变量b ,5.2 Java类的封装性,/类D的定义,文件D.java(假定D.class所在目录为Z) package Z; import X.*; /引入类目录X中的所有公共类(即类A和类C) public class D /公共类D A a; /类D中使用

14、了类A定义一个对象引用变量a private B b; /错误,B类为包X中的缺省访问控制类, /不能被包X以外的类使用 ,5.2 Java类的封装性,类B使用类A的情况表,5.2 Java类的封装性,5.2.2 成员访问控制符,描述类中成员的访问控制符有:public、缺省访问控制、private及protected。 1、public成员 对于属于public类中的public成员,可以在该类外部的任何类中访问。对于属于缺省访问控制类中的public成员,该类所在包中的其它类可以访问它。 2、缺省访问控制成员 缺省控制成员只可以在该类所在包的其他类中访问。 3、private成员 该类成员

15、仅限于在本类中访问。 4、protected访问控制成员 在继承中使用。,5.2 Java类的封装性,例: /定义文件A.java,以下是该文件内容 package X; /定义或指定一个目录X(包),用来存放生成的各 /个类的class文件 public class A /公共类A public String strA; /定义一个字符串对象引用变量strA,公共访问 /控制 private int ai ; /私有访问控制 double ad; /缺省访问控制 class B /缺省访问控制类B public String strB; /定义一个字符串对象引用变量strB,公共访问 /控制 private int bi ; /私有访问控制 double bd; /缺省访问控制 ,5.2 Java类的封装性,/定义文件C.java,以下是该文件内容 package X; /定义或指定一个目录X(包),用来存放生成的各个类的 /class文件 public class C /因为类C与类A、类B处于同一包中, /故类C中可以访问A、B中public成员 A a; B

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

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

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