Java程序设计2面向对象编程(总结).ppt
《Java程序设计2面向对象编程(总结).ppt》由会员分享,可在线阅读,更多相关《Java程序设计2面向对象编程(总结).ppt(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第2讲讲 面向对象编程面向对象编程2.1.1 类和对象类和对象对对对对一一一一个个个个用用用用户户户户自自自自定定定定义义义义的的的的类类类类,要要要要为为为为类类类类取取取取一一一一个个个个名名名名字字字字,并并并并指指指指明明明明类类类类中中中中包包包包含含含含哪哪哪哪些些些些变变变变量量量量和和和和方方方方法法法法以以以以及及及及相相相相应应应应的的的的类类类类型型型型、实实实实现现现现等等等等,这称为类的定义。类定义语句的一般形式为:这称为类的定义。类定义语句的一般形式为:这称为类的定义。类定义语句的一般形式为:这称为类的定义。类定义语句的一般形式为:修饰符修饰符修饰符修饰符clas
2、s class 类名类名类名类名 extends extends 父类名父类名父类名父类名 implements implements 接口名表接口名表接口名表接口名表 成员变量声明成员变量声明成员变量声明成员变量声明 /类体类体类体类体 方法成员声明方法成员声明方法成员声明方法成员声明 【例例例例1 1 1 1】定定定定义义义义一一一一个个个个名名名名为为为为RectRectRectRect表表表表示示示示长长长长方方方方形形形形的的的的类类类类,它它它它仅仅仅仅包包包包含含含含doubledoubledoubledouble类型的长类型的长类型的长类型的长lengthlengthlengt
3、hlength和宽和宽和宽和宽widthwidthwidthwidth两个数据成员。两个数据成员。两个数据成员。两个数据成员。【例例例例2 2 2 2】定定定定义义义义一一一一个个个个名名名名为为为为RectangleRectangleRectangleRectangle表表表表示示示示长长长长方方方方形形形形的的的的类类类类,它它它它包包包包含含含含doubledoubledoubledouble类类类类型型型型的的的的长长长长lengthlengthlengthlength和和和和宽宽宽宽widthwidthwidthwidth两两两两个个个个数数数数据据据据成成成成员员员员和和和和设设设
4、设置置置置长长长长方方方方形形形形长长长长宽宽宽宽值值值值的的的的方方方方法法法法setDim()setDim()setDim()setDim()、计计计计算算算算长长长长方方方方形形形形面积的方法面积的方法面积的方法面积的方法area()area()area()area()。对对对对象象象象举举举举例例例例:设设设设已已已已经经经经定定定定义义义义了了了了例例例例5.25.25.25.2中中中中的的的的RectangleRectangleRectangleRectangle类类类类,可可可可以用如下的方法来引用对象的成员:以用如下的方法来引用对象的成员:以用如下的方法来引用对象的成员:以用如
5、下的方法来引用对象的成员:Rectangle r=new Rectangle();Rectangle r=new Rectangle();/定义类的对象定义类的对象定义类的对象定义类的对象 r.length,r.width /r.length,r.width /引用对象的数据成员引用对象的数据成员引用对象的数据成员引用对象的数据成员 r.area()/r.area()/引用对象的成员方法引用对象的成员方法引用对象的成员方法引用对象的成员方法【例例例例3 3 3 3】利利利利用用用用例例例例5.15.15.15.1定定定定义义义义的的的的类类类类RectRectRectRect,计计计计算算算算
6、长长长长和和和和宽宽宽宽分分分分别别别别为为为为20202020和和和和10101010的长方形面积。的长方形面积。的长方形面积。的长方形面积。class RectDemo class RectDemo public static void main(String args)public static void main(String args)Rect rect1=new Rect();/Rect rect1=new Rect();/为对象为对象为对象为对象rect1rect1分配存储空间分配存储空间分配存储空间分配存储空间 double area;double area;rect1.wid
7、th=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);3、构造方法的作用与构成、构造方法的作用与构成 构造方法:与类同名且没有任何返回值的方法;
8、构造方法:与类同名且没有任何返回值的方法;构造方法:与类同名且没有任何返回值的方法;构造方法:与类同名且没有任何返回值的方法;对象的初始化任务要靠构造方法来完成;对象的初始化任务要靠构造方法来完成;对象的初始化任务要靠构造方法来完成;对象的初始化任务要靠构造方法来完成;一个类中可以有多个构造方法,名字相同而参数不同;一个类中可以有多个构造方法,名字相同而参数不同;一个类中可以有多个构造方法,名字相同而参数不同;一个类中可以有多个构造方法,名字相同而参数不同;构造方法一般用于类中变量的初始化。构造方法一般用于类中变量的初始化。构造方法一般用于类中变量的初始化。构造方法一般用于类中变量的初始化。例
9、:例:class Rect class Rect class Rect class Rect double length;double length;double length;double length;double width;double width;double width;double width;Rect(double l,double w)Rect(double l,double w)Rect(double l,double w)Rect(double l,double w)Length=l;Length=l;Length=l;Length=l;width=w;width=w;w
10、idth=w;width=w;2.1.3 构造方法构造方法在在在在JavaJava中中中中,任任任任何何何何变变变变量量量量在在在在被被被被使使使使用用用用前前前前都都都都必必必必须须须须先先先先设设设设置置置置初初初初值值值值。JavaJava提提提提供供供供了了了了为为为为类类类类的的的的成成成成员员员员变变变变量量量量赋赋赋赋初初初初值值值值的的的的专专专专门门门门功功功功能能能能:构构构构造造造造方方方方法法法法(constructorconstructor)。构构构构造造造造方方方方法法法法是是是是一一一一种种种种特特特特殊殊殊殊的的的的成成成成员员员员方方方方法,它的特殊性反映在如
11、下几个方面:法,它的特殊性反映在如下几个方面:法,它的特殊性反映在如下几个方面:法,它的特殊性反映在如下几个方面:(1)(1)构造方法名与类名相同。构造方法名与类名相同。构造方法名与类名相同。构造方法名与类名相同。(2)(2)构造方法不返回任何值,也没有返回类型。构造方法不返回任何值,也没有返回类型。构造方法不返回任何值,也没有返回类型。构造方法不返回任何值,也没有返回类型。(3)(3)每一个类可以有零个或多个构造方法。每一个类可以有零个或多个构造方法。每一个类可以有零个或多个构造方法。每一个类可以有零个或多个构造方法。(4)(4)构构构构造造造造方方方方法法法法在在在在创创创创建建建建对对对
12、对象象象象时时时时自自自自动动动动执执执执行行行行,一一一一般般般般不不不不能能能能显显显显式式式式地地地地直直直直接调用。接调用。接调用。接调用。【例例例例6 6 6 6】分分分分别别别别计计计计算算算算长长长长、宽宽宽宽分分分分别别别别为为为为20202020、10101010和和和和6 6 6 6、3 3 3 3的的的的两两两两个个个个长长长长方方方方形形形形面面面面积积积积。本本本本程程程程序序序序用用用用构构构构造造造造方方方方法法法法来来来来初初初初始始始始化化化化长长长长方方方方形形形形的大小。的大小。的大小。的大小。class RectConstructorclass Rect
13、Constructor 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,double w)length=l;length=l;width=w;width=w;class RectDemo3 class RectDemo3 public static void main(String arg
14、s)public static void main(String args)RectConstructor rect1=new RectConstructor(20,10);RectConstructor rect1=new RectConstructor(20,10);RectConstructor rect2=new RectConstructor(6,3);RectConstructor rect2=new RectConstructor(6,3);double ar;double ar;ar=rect1.area();ar=rect1.area();System.out.println
15、(System.out.println(第一个长方形的面积是:第一个长方形的面积是:第一个长方形的面积是:第一个长方形的面积是:+ar);+ar);ar=rect2.area();ar=rect2.area();System.out.println(System.out.println(第二个长方形的面积是:第二个长方形的面积是:第二个长方形的面积是:第二个长方形的面积是:+ar);+ar);程序运行结果如下:程序运行结果如下:程序运行结果如下:程序运行结果如下:第一个长方形的面积是:第一个长方形的面积是:第一个长方形的面积是:第一个长方形的面积是:200.0 200.0 第二个长方形的面积是
16、:第二个长方形的面积是:第二个长方形的面积是:第二个长方形的面积是:18.0 18.0 练习练习练习练习1 1:编写程序,计算长方形的面积。:编写程序,计算长方形的面积。:编写程序,计算长方形的面积。:编写程序,计算长方形的面积。class Rectangleclass Rectangledouble width,height;double width,height;Rectangle(double w,double h)Rectangle(double w,double h)width=w;width=w;height=h;height=h;double area()double area(
17、)return width*height;return width*height;double perimeter()double perimeter()return 2*(width+height);return 2*(width+height);public class Lx1 public static void main(String args)double w=2,h=3,c,s;RectangleRectangle r=new RectangleRectangle(w,h);s=r.area();c=r.perimeter();perimeter();System.out.prin
18、tln(“长方形的面积长方形的面积=”+s);System.out.println(“长方形的面积长方形的面积=”+c);double s2=area(3.0,4.0);double s2=area(3.0,4.0);System.out.println(“System.out.println(“矩形的面积矩形的面积矩形的面积矩形的面积=”+s2);=”+s2);double s3=area(3.0,4.0,5.0);double s3=area(3.0,4.0,5.0);System.out.println(“System.out.println(“梯形的面积梯形的面积梯形的面积梯形的面积=
19、”+s3);=”+s3);程序运行的结果如下:程序运行的结果如下:程序运行的结果如下:程序运行的结果如下:圆的面积圆的面积圆的面积圆的面积=28.27433388230838=28.27433388230838矩形的面积矩形的面积矩形的面积矩形的面积=12.0=12.0梯形的面积梯形的面积梯形的面积梯形的面积=17.5=17.52.2.1 类继承的实现类继承的实现JavaJava中中中中的的的的继继继继承承承承是是是是通通通通过过过过extendsextends关关关关键键键键字字字字来来来来实实实实现现现现的的的的,在在在在定定定定义义义义新新新新类类类类时时时时使使使使用用用用extend
20、sextends关关关关键键键键字字字字指指指指明明明明新新新新类类类类的的的的父父父父类类类类,就就就就在在在在两个类之间建立了继承关系。两个类之间建立了继承关系。两个类之间建立了继承关系。两个类之间建立了继承关系。1.1.定义子类定义子类定义子类定义子类通通通通过过过过继继继继承承承承系系系系统统统统类类类类定定定定义义义义子子子子类类类类的的的的例例例例子子子子已已已已经经经经见见见见过过过过的的的的有有有有例例例例1.21.2的小程序,其类头分别为:的小程序,其类头分别为:的小程序,其类头分别为:的小程序,其类头分别为:public class HelloApplet extends
21、Applet.public class HelloApplet extends Applet.一一一一般般般般地地地地,在在在在类类类类声声声声明明明明中中中中,加加加加入入入入extendsextends子子子子句句句句来来来来创创创创建建建建一一一一个个个个类类类类的的的的子子子子类类类类。extendsextends后后后后即即即即为为为为父父父父类类类类名名名名,若若若若父父父父类类类类名名名名又又又又是是是是某某某某个个个个类类类类的的的的子子子子类类类类,则则则则定定定定义义义义的的的的类类类类也也也也是是是是该该该该类类类类的的的的(间间间间接接接接)子子子子类类类类。若无若无若
22、无若无extendsextends子句,则该类为子句,则该类为子句,则该类为子句,则该类为java.lang.Objectjava.lang.Object的子类。的子类。的子类。的子类。例5.4 显示当前日期和时间,运行结果见图。import java.awt.Graphics;import java.awt.Graphics;import java.applet.Applet;import java.applet.Applet;import java.util.Calendar;import java.util.Calendar;class Time class Time private C
23、alendar t;private Calendar t;private int y,m,d,hh,mm,ss;private int y,m,d,hh,mm,ss;Time()Time()t=Calendar.getInstance();t=Calendar.getInstance();y=t.get(t.YEAR);y=t.get(t.YEAR);m=t.get(t.MONTH)+1;m=t.get(t.MONTH)+1;d=t.get(t.DATE);d=t.get(t.DATE);hh=t.get(t.HOUR_OF_DAY);hh=t.get(t.HOUR_OF_DAY);mm=t.
24、get(t.MINUTE);mm=t.get(t.MINUTE);ss=t.get(t.SECOND);ss=t.get(t.SECOND);public String getDate()public String getDate()return y+return y+年年年年+m+m+月月月月+d+d+日日日日;public String getTime()public String getTime()String s=hh+String s=hh+时时时时+mm+mm+分分分分+ss+ss+秒秒秒秒;return s;return s;public class ShowTime exten
25、ds Applet public class ShowTime extends Applet Time t=new Time();Time t=new Time();public void paint(Graphics g)public void paint(Graphics g)g.drawString(g.drawString(当前日期:当前日期:当前日期:当前日期:+t.getDate(),50,40);+t.getDate(),50,40);g.drawString(g.drawString(当前时间:当前时间:当前时间:当前时间:+t.getTime(),50,80);+t.getT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 面向 对象 编程 总结
限制150内