欢迎来到天天文库
浏览记录
ID:36841362
大小:529.00 KB
页数:41页
时间:2019-05-10
《Java面向对象程序设计第7讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章面向对象程序设计5.1类(class)类是组成Java程序的基本元素,它封装了一系列的变量(即数据成员,也域)和方法(即成员方法),是一类对象的原型。创建一个新的类,就是创建一个新的数据类型。实例化一个类,就得到一个对象。因此,对象就是一组变量和相关方法的集合,其中变量表明对象的状态、属性,方法表明对象所具有的行为。类定义语句的一般形式为:[修饰符]class类名[extends父类名][implements接口名表]{成员变量声明//类体方法成员声明}5.1.1类定义(1)【例5.1】定义一个名为Rect表示长方形的类,它仅
2、包含double类型的长length和宽width两个数据成员。classRect{doublelength;doublewidth;}在类的定义中,可加入对数据成员进行操作的方法成员。5.1.1类定义(2)【例5.2】定义一个名为Rectangle表示长方形的类,它包含double类型的长length和宽width两个数据成员和设置长方形长宽值的方法setDim()、计算长方形面积的方法area()。classRectangle{doublelength;doublewidth;doublearea(){returnlength*
3、width;}voidsetDim(doublew,doublel){width=w;length=l;}}5.1.1类定义(3)在一个程序中,有时需要定义多个类。多个类的定义形式有两种:并列和嵌套。常见的多个类定义形式为并列定义,即一个类接着一个类进行定义,它们之间是并列的关系。另一种形式为嵌套定义,即在一个类中定义另外的类,它们之间是包含和被包含的关系,可分别称为包含类和内部类(或嵌套类)。采用何种形式定义多个类,由类之间的访问关系确定。5.1.1类定义(4)5.1.1类定义(5)类定义了一个类型(type)。与Java语言提供
4、的几种基本类型一样,类型用来声明、定义该类型的变量。例如,下面的语句:Rectrect1;声明变量rect1的类型为类Rect。类型为类的变量与基本类型变量有所不同,类是一种引用(reference)类型。实际上,rect1是一个对类型为类Rect的对象的引用,rect1不是对象本身,可理解为一个指针,上述声明仅生成一个空(null)引用。一旦定义了所需的类,就可以创建该类的变量,创建类的变量称为类的实例化,类的变量也称为类对象、类的实例等。类的对象是在程序运行中创建生成的,其所占的空间在程序运行中动态分配。当一个类的对象完成了它的
5、使命,为节省资源,Java的垃圾收集程序就会自动收回这个对象所占的空间。即类对象有自己的生命周期。5.1.2类对象(1)5.1.2类对象(2)1.创建对象创建类的对象需用new运算符,一般形式为:对象名=new类名()new运算符用指定的类在内存中分配空间,并将存储空间的引用存入语句中的对象变量。例如:rect1=newRect();new运算符也可以与类声明一起使用来创建类的对象。例如:Rectrect1=newRect();2.引用对象在创建了类的对象后,就可以对对象的各个成员进行访问,进行各种处理。访问对象成员的一般形式为:对
6、象名.数据成员名对象名.成员方法名()//方法名带圆括号5.1.2类对象(3)运算符“.”称为成员运算符,在对象名和成员名之间起到连接的作用,指明是哪个对象的哪个成员。例如:设已经定义了例5.2中的Rectangle类,可以用如下的方法来引用对象的成员:Rectangler=newRectangle();//定义类的对象r.length,r.width//引用对象的数据成员r.area()//引用对象的成员方法5.1.2类对象(4)【例5.3】利用例5.1定义的类Rect,计算长和宽分别为20和10的长方形面积。classRectD
7、emo{publicstaticvoidmain(Stringargs[]){Rectrect1=newRect();//为对象rect1分配存储空间doublearea;rect1.width=20;//向数据成员赋值rect1.length=10;area=rect1.width*rect1.length;//对数据成员运算System.out.println("长方形面积是:"+area);}}运行结果如下:长方形面积是:200.05.1.2类对象(4)【例5.5】用例5.2中定义的类Rectangle分别计算长、宽分别为20
8、、10和6、3的两个长方形面积。classRectDemo2{publicstaticvoidmain(Stringargs[]){Rectanglerect1=newRectangle();Rectanglerect2=newRec
此文档下载收益归作者所有