Java面向对象程序设计第7讲.ppt

上传人:wuy****n92 文档编号:80452805 上传时间:2023-03-23 格式:PPT 页数:41 大小:346.49KB
返回 下载 相关 举报
Java面向对象程序设计第7讲.ppt_第1页
第1页 / 共41页
Java面向对象程序设计第7讲.ppt_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《Java面向对象程序设计第7讲.ppt》由会员分享,可在线阅读,更多相关《Java面向对象程序设计第7讲.ppt(41页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 面向对象程序设计5.1 5.1 类(类(classclass)类类是是组组成成JavaJava程程序序的的基基本本元元素素,它它封封装装了了一一系系列列的的变变量量(即即数数据据成成员员,也也域域)和和方方法法(即即成成员员方方法法),是是一一类类对对象象的的原原型型。创创建建一一个个新新的的类类,就就是是创创建建一一个个新新的的数数据据类类型型。实实例例化化一一个个类类,就就得得到到一一个个对对象象。因因此此,对对象象就就是是一一组组变变量量和和相相关关方方法法的的集集合合,其其中中变变量量表表明明对对象象的的状状态态、属属性,方法表明对象所具有的行为。性,方法表明对象所具有的行为。

2、v类定义语句的一般形式为:类定义语句的一般形式为:修修饰饰符符class class 类类名名 extends extends 父父类名类名implements implements 接口名表接口名表 成员变量声明成员变量声明 /类体类体方法成员声明方法成员声明 5.1.1 5.1.1 类定义类定义(1)(1)v【例例5.15.1】定定义义一一个个名名为为RectRect表表示示长长方方形形的的类类,它它仅仅包包含含doubledouble类类型型的的长长lengthlength和和宽宽widthwidth两个数据成员。两个数据成员。class Rect class Rect double l

3、ength;double length;double width;double width;v在在类类的的定定义义中中,可可加加入入对对数数据据成成员员进进行行操作的方法成员。操作的方法成员。5.1.1 5.1.1 类定义类定义(2)(2)【例例5.25.2】定定义义一一个个名名为为RectangleRectangle表表示示长长方方形形的的类类,它它包包含含doubledouble类类型型的的长长lengthlength和和宽宽widthwidth两两个个数数据据成成员员和和设设置置长长方方形形长长宽宽值值的的方方法法setDim()setDim()、计计算长方形面积的方法算长方形面积的方法

4、area()area()。class Rectangle class Rectangle double length;double length;double width;double width;double area()double area()return length*width;return length*width;void setDim(double w,double l)void setDim(double w,double l)width=w;width=w;length=l;length=l;5.1.1 5.1.1 类定义类定义(3)(3)v在在一一个个程程序序中中,有有时

5、时需需要要定定义义多多个个类类。多个类的定义形式有两种:并列和嵌套。多个类的定义形式有两种:并列和嵌套。v常常见见的的多多个个类类定定义义形形式式为为并并列列定定义义,即即一一个个类类接接着着一一个个类类进进行行定定义义,它它们们之之间间是并列的关系。是并列的关系。v另另一一种种形形式式为为嵌嵌套套定定义义,即即在在一一个个类类中中定定义义另另外外的的类类,它它们们之之间间是是包包含含和和被被包包含含的的关关系系,可可分分别别称称为为包包含含类类和和内内部部类类(或或嵌嵌套套类类)。采采用用何何种种形形式式定定义义多多个个类,由类之间的访问关系确定。类,由类之间的访问关系确定。5.1.1 5.

6、1.1 类定义类定义(4)(4)5.1.1 5.1.1 类定义类定义(5)(5)v类类定定义义了了一一个个类类型型(typetype)。与与JavaJava语语言言提提供供的的几几种种基基本本类类型型一一样样,类类型型用用来来声声明明、定定义该类型的变量。例如,下面的语句:义该类型的变量。例如,下面的语句:Rect rect1 Rect rect1;声明变量声明变量rect1rect1的类型为类的类型为类RectRect。v类类型型为为类类的的变变量量与与基基本本类类型型变变量量有有所所不不同同,类类是是一一种种引引用用(referencereference)类类型型。实实际际上上,rect1

7、rect1是是一一个个对对类类型型为为类类RectRect的的对对象象的的引引用用,rect1rect1不不是是对对象象本本身身,可可理理解解为为一一个个指指针针,上上述声明仅生成一个空(述声明仅生成一个空(nullnull)引用。引用。v一一旦旦定定义义了了所所需需的的类类,就就可可以以创创建建该该类类的的变变量量,创创建建类类的的变变量量称称为为类类的的实实例例化化,类的变量也称为类对象、类的实例等。类的变量也称为类对象、类的实例等。v类类的的对对象象是是在在程程序序运运行行中中创创建建生生成成的的,其其所所占占的的空空间间在在程程序序运运行行中中动动态态分分配配。当当一一个个类类的的对对

8、象象完完成成了了它它的的使使命命,为为节节省省资资源源,JavaJava的的垃垃圾圾收收集集程程序序就就会会自自动动收收回回这这个个对对象象所所占占的的空空间间。即即类类对对象象有有自己的生命周期。自己的生命周期。5.1.2 5.1.2 类对象类对象(1)(1)5.1.2 5.1.2 类对象类对象(2)(2)v1.1.创建对象创建对象v创建类的对象需用创建类的对象需用newnew运算符,一般形式为:运算符,一般形式为:对象名对象名 =new=new 类名类名()()vnewnew运运算算符符用用指指定定的的类类在在内内存存中中分分配配空空间间,并将存储空间的引用存入语句中的对象变量并将存储空间

9、的引用存入语句中的对象变量。例如:例如:rect1=new Rect();rect1=new Rect();vnewnew运运算算符符也也可可以以与与类类声声明明一一起起使使用用来来创创建建类的对象。类的对象。例如:例如:Rect rect1=new Rect();Rect rect1=new Rect();v2.2.引用对象引用对象v在在创创建建了了类类的的对对象象后后,就就可可以以对对对对象象的的各各个个成成员员进进行行访访问问,进进行行各各种种处处理。访问对象成员的一般形式为:理。访问对象成员的一般形式为:对象名对象名.数据成员名数据成员名对对象象名名.成成员员方方法法名名()()/方方

10、法法名名带带圆括号圆括号5.1.2 5.1.2 类对象类对象(3)(3)v运运算算符符“.”“.”称称为为成成员员运运算算符符,在在对对象象名名和和成成员员名名之之间间起起到到连连接接的的作作用用,指指明明是是哪哪个个对对象象的的哪个成员。哪个成员。v例例如如:设设已已经经定定义义了了例例5.25.2中中的的RectangleRectangle类类,可以用如下的方法来引用对象的成员:可以用如下的方法来引用对象的成员:Rectangle Rectangle r r=new new Rectangle();Rectangle();/定定义义类类的对象的对象r.length,r.width /r.l

11、ength,r.width /引用对象的数据成员引用对象的数据成员r.area()/r.area()/引用对象的成员方法引用对象的成员方法5.1.2 5.1.2 类对象类对象(4)(4)v【例例5.35.3】利利用用例例5.15.1定定义义的的类类RectRect,计计算算长长和和宽宽分分别别为为2020和和1010的的长方形面积。长方形面积。class RectDemo class RectDemo public static void main(String args)public static void main(String args)Rect rect1=new Rect();/Re

12、ct rect1=new Rect();/为对象为对象rect1rect1分配存储空间分配存储空间 double area;double area;rect1.width=20;/rect1.width=20;/向数据成员赋值向数据成员赋值rect1.length=10;rect1.length=10;area=rect1.width*rect1.length;/area=rect1.width*rect1.length;/对数据成员运算对数据成员运算System.out.println(System.out.println(长方形面积是:长方形面积是:+area);area);v运行结果如下

13、:运行结果如下:长方形面积是:长方形面积是:200.0200.05.1.2 5.1.2 类对象类对象(4)(4)v【例例5.55.5】用用例例5.25.2中中定定义义的的类类RectangleRectangle分分别别计计算算长长、宽宽分分别别为为20 20、1010和和6 6、3 3的的两两个个长长方方形形面积。面积。class RectDemo2 class RectDemo2 public static void main(String args)public static void main(String args)Rectangle rect1=new Rectangle();Rec

14、tangle rect1=new Rectangle();Rectangle rect2=new Rectangle();Rectangle rect2=new Rectangle();double ar;double ar;rect1.setDim(20,rect1.setDim(20,10);10);/初初始始化化每每个个长长方方形形rect2.setDim(6,3);rect2.setDim(6,3);5.1.2 5.1.2 类对象类对象(5)(5)5.1.2 5.1.2 类对象类对象(5)(5)ar=rect1.area();ar=rect1.area();System.out.pri

15、ntln(System.out.println(第第一一个个长长方方形形的的面面积积是是:+ar);ar);ar=rect2.area();ar=rect2.area();System.out.println(System.out.println(第第二二个个长长方方形形的的面面积积是是:+ar);ar);v程序运行结果如下:程序运行结果如下:第一个长方形的面积是:第一个长方形的面积是:200.0 200.0第二个长方形的面积是:第二个长方形的面积是:18.0 18.0 v在在JavaJava中中,任任何何变变量量在在被被使使用用前前都都必必须须先先设设置置初初值值。JavaJava提提供供了

16、了为为类类的的成成员员变变量量赋赋初初值值的的专专门门功功能能:构构造造方法。构造方法是一种特殊的成员方法,特殊性:方法。构造方法是一种特殊的成员方法,特殊性:(1)(1)构造方法名与类名相同。构造方法名与类名相同。(2)(2)构构造造方方法法不不返返回回任任何何值值,也也没没有有返返回回类类型。型。(3)(3)每一个类可以有零个或多个构造方法。每一个类可以有零个或多个构造方法。(4)(4)构构造造方方法法在在创创建建对对象象时时自自动动执执行行,一一般般不能显式地直接调用。不能显式地直接调用。5.1.3 5.1.3 构造方法构造方法(1 1)v【例例5.65.6】分分别别计计算算长长、宽宽分

17、分别别为为2020、1010和和6 6、3 3的的两两个个长长方方形面积。本程序用构造方法来初始化长方形的大小。形面积。本程序用构造方法来初始化长方形的大小。class RectConstructorclass RectConstructor double length;double length;double width;double width;double area()double area()return length*width;return length*width;RectConstructor(double l,double w)RectConstructor(double l

18、,double w)length=l;length=l;width=w;width=w;5.1.3 5.1.3 构造方法(构造方法(2 2)class RectDemo3 class RectDemo3 public static void main(String args)public static void main(String args)RectConstructor rect1=new RectConstructor(20,10);RectConstructor rect1=new RectConstructor(20,10);RectConstructor rect2=new Re

19、ctConstructor(6,3);RectConstructor rect2=new RectConstructor(6,3);double ar;double ar;ar=rect1.area();ar=rect1.area();System.out.println(System.out.println(第一个长方形的面积是:第一个长方形的面积是:+ar);ar);ar=rect2.area();ar=rect2.area();System.out.println(System.out.println(第二个长方形的面积是:第二个长方形的面积是:+ar);ar);v程序运行结果如下:程序

20、运行结果如下:第一个长方形的面积是:第一个长方形的面积是:200.0 200.0 第二个长方形的面积是:第二个长方形的面积是:18.0 18.0 5.1.3 5.1.3 构构 造造 方方 法法(3 3)v在在类类和和类类的的成成员员定定义义时时可可以以使使用用一一些些修修饰饰符符来来对对类类和和成成员员的的使使用用作作某某些些限限定定。一一般般将将修修饰饰符符分分为为两两类类:访访问问控控制制符符和和非非访访问问控控制制符符。访访问问控控制制符符有有publicpublic、protectedprotected、privateprivate等等,它它们们的的作作用用是是给给予予对对象象一一定定

21、的的访访问问权权限限,实实现现类类和和类类中中成成员员的的信信息息隐隐藏藏。非非访访问问控控制制符符作作用用各各不不相相同同,有有staticstatic、finalfinal、nativenative、volatilevolatile、abstractabstract等等。某某些些修修饰饰符符只只能能应应用用于于类类的的成成员员,某某些些修修饰饰符符既既可可应应用用于于类类也也可可应用于类的成员。应用于类的成员。5.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(1 1)v1.1.staticstatic修修饰饰符符,修修饰饰类类的的成成员员变变量量和和方方法法成成员员,使使它它们们

22、成成为为静静态态成成员员,也也称称为为类类成成员员。静静态态成成员员存存储储于于类类的的存存储储区区,属属于于整整个个类类,而而不不属属于于一一个个具具体体的的类类对对象象。因因为为静静态态成成员员属属于于整整个个类类,所所以以它它被被所所有有该该类类对对象象共共享享。在在不不同同的的类类对对象象中访问静态成员,访问的是同一个。注意两点:中访问静态成员,访问的是同一个。注意两点:v(1)(1)静静态态方方法法不不能能访访问问属属于于某某个个对对象象的的成成员员变变量量,而而只只能能处处理理属属于于整整个个类类的的成成员员变变量量。即即静静态方法只能处理静态变量。态方法只能处理静态变量。v(2)

23、(2)可可以以用用两两种种方方式式调调用用静静态态成成员员,它它们们的的作作用相同。用相同。变量:类名变量:类名.变量、类对象变量、类对象.变量。变量。方法:类名方法:类名.方法名方法名()()、类对象、类对象.方法名方法名()()。5.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(2 2)v【例【例5.85.8】静态成员的使用。】静态成员的使用。class StaticDemo class StaticDemo static int a=42;static int a=42;static int b=99;static int b=99;static void callme()st

24、atic void callme()System.out.println(a=+a);System.out.println(a=+a);5.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(3 3)class StaticByName class StaticByName public static void main(String args)public static void main(String args)StaticDemo.callme();StaticDemo.callme();System.out.println(b System.out.println(b=+Stati

25、cDemo.b);StaticDemo.b);v程序运行结果如下:程序运行结果如下:a=42 a=42 b=99 b=995.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(4 4)5.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(5 5)v2.final2.final修修饰饰符符,可可应应用用于于类类、方方法法和和变变量量。finalfinal的的意意义义为为终终极极或或最最终终。finalfinal类类不不能能被被继继承承,即即finalfinal类类无无子子类类。finalfinal方方法法不不能能被被覆覆盖盖,即即子子类类的的方方法法名名不不能能与与父父类类的的fin

26、alfinal方方法法名名相相同同。finalfinal变变量量实实际际上上是是JavaJava语语言言的的符符号号常常量量,可可在在定定义义时时赋赋初初值值或或在在定定义义后后的的其其他他地地方方赋赋初初值值,但但不不能能再再次次赋赋值值,习习惯惯上上使使用大写的标识符表示用大写的标识符表示finalfinal变量。例如:变量。例如:final double PI=3.1416;final double PI=3.1416;final double G=9.18;final double G=9.18;v因因为为finalfinal变变量量不不能能改改变变,没没有有必必要要在在每每个个对对象

27、象中中进进行行存存储储,可可以以将将finalfinal变变量量声声明明为为静静态态的的,以以节节省省存存储空间。储空间。v例如:例如:static final double PI=3.1416static final double PI=3.1416;v3.abstract3.abstract修饰符修饰符vabstractabstract修修饰饰符符可可应应用用于于类类和和方方法法,称称为为抽抽象象类类和和抽抽象象方方法法。抽抽象象类类需需要要继继承承、抽抽象象方方法法需需要在子类中实现才有意义。要在子类中实现才有意义。v4.4.nativenative修饰符修饰符vnativenative

28、修修饰饰符符一一般般用用来来声声明明用用其其他他语语言言如如C C、C+C+、FORTRANFORTRAN、汇汇编编等等书书写写方方法法体体并并具具体体实实现现方方法法功功能能的的特特殊殊方方法法。由由于于nativenative方方法法的的方方法法体体使使用用其其他他语语言言编编写写。所所以以所所有有的的nativenative方方法法都都没没有有方方法法体体。nativenative方方法法可可应应用用于于实实时时性强、执行效率高,运行速度要求较高的场合。性强、执行效率高,运行速度要求较高的场合。5.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(5 5)v5.5.synchron

29、izedsynchronized修饰符修饰符vsynchronizedsynchronized修修饰饰符符可可应应用用于于方方法法或或块块,在多线程在多线程v程程序序中中,对对用用于于共共享享的的方方法法和和块块加加互互斥斥锁锁,使使得得任任一一时时刻刻,synchronizedsynchronized方方法法或或块只能由一个线程执行或操作。块只能由一个线程执行或操作。5.1.4 5.1.4 类和成员的修饰符(类和成员的修饰符(5 5)5.1.5 5.1.5 类的使用(类的使用(1 1)v1.1.私有成员的访问私有成员的访问v为为了了降降低低类类间间的的耦耦合合性性,可可以以为为类类成成员员指

30、指定定privateprivate修修饰饰符符,表表示示该该成成员员只只能能在在该该类类内内部部访访问问。若若需需要要在在其其他他类类中中访访问问私私有有成成员员,只只能能通通过过取取数数和和送送数数的的方方法法来来访访问问。这这样样的的方法常命名为方法常命名为getXxx()getXxx()和和setXxx()setXxx()等。等。v【例【例5.95.9】私有成员的访问。】私有成员的访问。class RectangleRC class RectangleRC private double length;private double length;private double width;p

31、rivate double width;double double getLength()getLength()/定定义义取取长长方方形形边边长长的方法的方法 return length;return length;double getWidth()double getWidth()return width;return width;5.1.5 5.1.5 类的使用(类的使用(2 2)5.1.5 5.1.5 类的使用(类的使用(3 3)RectangleRC(double l,double w)RectangleRC(double l,double w)length=l;length=l;wi

32、dth=w;width=w;class RectDemo5 class RectDemo5 public static void main(String args)public static void main(String args)RectangleRC rect1=new RectangleRC(8,7);RectangleRC rect1=new RectangleRC(8,7);double ar=rect1.getLength()*rect1.getWidth();double ar=rect1.getLength()*rect1.getWidth();System.out.pri

33、ntln(System.out.println(长方形的面积是:长方形的面积是:+ar);ar);v2.2.方法参数是类的对象方法参数是类的对象v方方法法的的参参数数类类型型可可以以是是引引用用类类型型类类。类类的的对对象象中中实实际际存存储储为为对对象象的的引引用用,在在调调用用类类参参数数时时方方法法间间传传送送的的是是引引用用。尽尽管管JavaJava采采用用值值传传送送,引引用用从从调调用用方方法法单单向向传传送送到到被被调调方方法法,但但由由于于调调用用方方法法与与被被调调方方法法对对应应类类参参数数的的引引用用相相同同,它它们们引引用用同同一一对对象象,所所以以,若若在在被被调调方

34、方法法中中修修改改了了引引用用类类型型形形式式参参数数的的取取值值,则则调调用用方方法法对对应应的的实实际际参参数数也也将将发发生生相相应应的的变变化化。即即调调用用方方法法与与被被调调方方法法之之间间是是“引引用用单单向向传传送送,数数据双向传送据双向传送”。v应用引用类型的方法参数,可在方法间传送数据。应用引用类型的方法参数,可在方法间传送数据。5.1.5 5.1.5 类的使用(类的使用(4 4)v【例例5.105.10】引引用用类类型型的的方方法法参参数数是是方方法法间间传传送送数据的桥梁。数据的桥梁。class RefParameter class RefParameter doubl

35、e width,length,area;double width,length,area;RefParameter(double w,double l)RefParameter(double w,double l)width=w;width=w;length=l;length=l;void calArea(RefParameter r)void calArea(RefParameter r)r.area=r.width*r.length;r.area=r.width*r.length;5.1.5 5.1.5 类的使用(类的使用(5 5)class PassObject class PassOb

36、ject public static void main(String args)public static void main(String args)RefParameter RefParameter rr rr=new new RefParameter(10,20);RefParameter(10,20);rr.calArea(rr);rr.calArea(rr);System.out.println(System.out.println(长长方方形形面面积积为为 :+rr.area);rr.area);程序运行结果如下:程序运行结果如下:长方形面积为长方形面积为 :200.0200.0

37、5.1.5 5.1.5 类的使用(类的使用(6 6)5.1.5 5.1.5 类的使用(类的使用(7 7)v3.3.方法返回值为类的对象方法返回值为类的对象v在在JavaJava语语言言中中,方方法法的的返返回回值值类类型型也也可可以以为为引用类型,例如:类。引用类型,例如:类。5.1.5 5.1.5 类的使用(类的使用(8 8)v【例【例5.115.11】方法的返回值类型为引用类型。】方法的返回值类型为引用类型。class RetClassclass RetClass double width,length,area;double width,length,area;RetClass(doub

38、le w,double l)RetClass(double w,double l)width=w;width=w;length=l;length=l;RetClass calArea(RetClass r)RetClass calArea(RetClass r)r.area=r.width*r.length;r.area=r.width*r.length;return r;return r;class ReturnObject class ReturnObjectpublic static void main(String args)public static void main(String

39、 args)RetClass rr=new RetClass(10,20);RetClass rr=new RetClass(10,20);rr=rr.calArea(rr);rr=rr.calArea(rr);System.out.println(System.out.println(长方形面积为长方形面积为 :+rr.area);rr.area);v程序运行结果如下:程序运行结果如下:长长方形面积为方形面积为 :200.0200.05.1.5 5.1.5 类的使用(类的使用(9 9)v4.4.类对象作为类的成员类对象作为类的成员v类类的的数数据据成成员员也也可可以以是是引引用用类类型型的的

40、数数据据,如如数数组组、字字符符串串和和类类等等。若若一一个个类类的的对对象象是是一一个个类类的的成成员员时时,要要用用newnew运运算算符符为为这这个个对对象象分分配配存存储储空空间间。在在包包含含类类数数据据成成员员的的类类及及类类的的实实例例中中可以访问类数据成员的成员。可以访问类数据成员的成员。5.1.5 5.1.5 类的使用(类的使用(1010)class RectangleC /class RectangleC /具有两个成员的类具有两个成员的类RectC r=new RectC(10,20);/RectC r=new RectC(10,20);/类成员要分配空间类成员要分配空间

41、double area;/double area;/基本类型成员基本类型成员 class ClassMember class ClassMember public static void main(String args)public static void main(String args)RectangleC rr=new RectangleC();RectangleC rr=new RectangleC();rr.area=rr.r.width*rr.r.length;rr.area=rr.r.width*rr.r.length;System.out.println(System.out

42、.println(长方形面积为长方形面积为 :+rr.area);rr.area);v程序运行结果如下:程序运行结果如下:长方形面积为长方形面积为 :200.0200.05.1.5 5.1.5 类的使用(类的使用(11 11)v5.5.内部类(内部类(Inner classInner class)v内内部部类类,也也称称为为嵌嵌套套类类,被被附附加加到到JDK1.1JDK1.1及及更更高高版版本本中中。内内部部类类允允许许一一个个类类定定义义被被放放到到另另一一个个类类定定义义里里、一一个个语语句句块块里里或或一一个个表表达达式式内内部部。内内部部类类是是一一个个有有用用的的特特征征,因因为为

43、它它们们允允许许将将逻逻辑辑上上同同属属性性的的类类组组合合到到一一起起,并并在在另另一一个个类类中中控制一个类的可视性。控制一个类的可视性。5.1.5 5.1.5 类的使用(类的使用(1212)v【例【例5.135.13】在一个类中定义类(内部类)。】在一个类中定义类(内部类)。class RectDemo6 class RectDemo6 public static void main(String args)public static void main(String args)double ar;double ar;class RectangleR class RectangleR d

44、ouble length;double length;double width;double width;double area()double area()return length*width;/return length*width;/返回面积返回面积v v程序运行结果如下:程序运行结果如下:长方形的面积是:长方形的面积是:56.0 56.05.1.5 5.1.5 类的使用(类的使用(1212)void setDim(double w,double l)void setDim(double w,double l)width=w;width=w;length=l;length=l;Rect

45、angleR rect1=new RectangleR();RectangleR rect1=new RectangleR();RectangleR rect2=new RectangleR();RectangleR rect2=new RectangleR();rect1.setDim(10,20);/rect1.setDim(10,20);/初始化每个长方形初始化每个长方形 rect2.setDim(3,6);rect2.setDim(3,6);ar=rect1.area();ar=rect1.area();System.out.println(System.out.println(第一个

46、长方形面积是:第一个长方形面积是:+ar);ar);ar=rect2.area();ar=rect2.area();System.out.println(System.out.println(第二个长方形面积是:第二个长方形面积是:+ar);ar);5.1.5 5.1.5 类的使用(类的使用(1313)v程序运行结果如下:程序运行结果如下:第一个长方形面积是:第一个长方形面积是:200.0 200.0第二个长方形面积是:第二个长方形面积是:18.0 18.0v因因为为内内部部类类定定义义在在一一个个类类中中,因因此此内内部部类类的的名名称称不不能能与与所所嵌嵌套套的的类类相相同同,而而且且只只

47、能能在在定定义义的的范范围围中中使使用。内部类具有下面一些特性:用。内部类具有下面一些特性:(1)(1)内内部部类类可可以以被被定定义义在在方方法法中中。它它可可以以访访问嵌套类的方法的问嵌套类的方法的finalfinal变量。变量。5.1.5 5.1.5 类的使用(类的使用(1414)(2)(2)内内部部类类可可以以使使用用所所嵌嵌套套类类的的类类变变量量和和实例变量以及所嵌套的块中的本地变量。实例变量以及所嵌套的块中的本地变量。(3)(3)内部类可以被定义为内部类可以被定义为abstractabstract抽象类。抽象类。(4)(4)内内 部部 类类 可可 以以 被被 声声 明明 为为 p

48、rivateprivate或或protectedprotected,以以便便防防护护它它们们不不受受来来自自外外部部类类的的访访问问。访访问问保保护护不不阻阻止止内内部部类类使使用用其他类的任何成员。其他类的任何成员。(5)(5)一一个个内内部部类类可可以以作作为为一一个个接接口口,由由另另一个内部类实现。一个内部类实现。5.1.5 5.1.5 类的使用(类的使用(1515)(6)(6)声声明明为为staticstatic的的内内部部类类成成为为顶顶层层类类。这这些些内内部部类类失失去去了了在在本本地地范范围围和和其其他他内内部部类类中中使使用用数数据据或或变量的能力。变量的能力。(7)(7)内内部部类类不不能能声声明明任任何何staticstatic成成员员,只只有有顶顶层层类类可可以以声声明明staticstatic成成员员。因因此此,一一个个需需求求staticstatic成成员员的的内部类必须使用来自顶层类的成员。内部类必须使用来自顶层类的成员。5.1.5 5.1.5 类的使用(类的使用(1616)

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com