Java面向对象程序设计第7讲.ppt
《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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计
限制150内