《Java编程技术》PPT课件.ppt
《《Java编程技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Java编程技术》PPT课件.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java编程技术第三章第三章JavaJava语言的面向言的面向对象技象技术 对象与类的基本概念对象与类的基本概念3.2 对象对象3.3 类类3.4 继承继承3.1 3.1 对象与类的基本概念对象与类的基本概念(1)对象:现实世界对象的模型化,用变量来维护对象的状态,用方法来实现对象的行为。例如:轿车即:对象由描述状态的变量和可用来实现行为的方法组成。(2)方法:描述对象的行为,是对对象的操作的代码.例如:加速(3)类:不同的对象具有相同的特征(变量和方法)即:包含共有变量和方法的一组对象,称为类。例如:汽车类的实例化即可创建对象。(4)OOP(OrientedObjectProgram)的特点
2、封装性:对象将变量和方法封装在一起,成为一个整体。使得对外部接口和误操作具有保护性。继承性:一个对象获取另一个对象的特性的过程,可以实现代码复用.被继承的类:父类、基类继承父类的类:子类子类继承父类的状态和行为,也可以修改父类的状态和行为,同时增加自己特有的状态和行为。C+中支持多重继承(一个类可以继承多个父类)Java只支持单一继承。Java的基类是java.lang.Object。多态性:一个接口可以用作多个用途,特定的用途由环境所确定。“一个接口多个用途”。可以有二种方法实现:A.方法重载一个类中有多个相同名字的方法,根据传递给他们不同个数和类型的参数来决定使用哪个方法。编译时多态B.(
3、在同一类中)B.方法重写子类重新实现父类的方法。运行时多态(在不同类中)消息的传递:对象之间需要通过信息交互来实现复杂的行为.消息包括三方面的内容:A.接收者B.接收者应采用的方法C.方法的参数消息传递的结果是产生行为或修改指定对象的状态。3.2 对象对象对象是类的实例化3.2.1 实例实例例子1import java.awt.*;import java.awt.*;class class1 class class1 Button b1,b2;Button b1,b2;/对象的说明对象的说明public class1()public class1()b1=new Button(“ok”);b1
4、=new Button(“ok”);b2=new Button();b2=new Button();/对象的实例化对象的实例化String b=b1.getLabel();String b=b1.getLabel();b2.setLabel(“cacel”);b2.setLabel(“cacel”);/调用对象的方法调用对象的方法public ststic void main(String args)public ststic void main(String args)new class1();new class1();3.2.2 对象的说明对象的说明type name;type可以是类库中
5、的基类,也可以是自己定义的类.3.2.3 对象的实例化对象的实例化一般用new运算符进行实例化,即调用构造方法.对象名(name)=new类名(参数表);构造方法:用于实现初始化新类的特殊方法,方法名与类同名.一个类可以有多个构造方法,通过不同的参数(个数类型)区分.3.2.3 对象的使用对象的使用(1)引用对象的成员变量(2)调用对象的方法对象名.方法名(参数表)注:有无返回值3.3 类类3.3.1 类的基本组成类的基本组成一个类中通常都包含数据与函数两种类型的元素,我们一般把它叫作属性和成员函数,在很多时候我们也把成员函数称为方法(method)。将数据与代码通过类紧密结合在一起,就形成了
6、现在非常流行的封装的概念。Class 类名type1 变量1;typen 变量n;/定定义属义属性性变变量量(成员变量成员变量)类名(.参数表)/定定义义构造方法构造方法type1 方法1(参数表)方法体typen 方法n(参数表)方法体/定定义义方法方法例子2:publicclassRectangle/类说类说明明intwidth,height;/定义成员变定义成员变量量Rectangle(intx,inty)width=x;height=y;/以上为构造方法以上为构造方法intgetArea()inta;a=width*height;returna;/方法方法getAreapublic v
7、oid drawRect()int i,j;for(i=width;i0;i-)for(j=height;j0;j-)System.out.print(#);System.out.println();/方法方法drawAreadrawArea importjava.io.*;classno41/类说明类说明publicstaticvoidmain(Stringargs)throwsIOExceptionRectangler1;/对象说明对象说明r1=newRectangle(4,5);/对象初始化对象初始化System.out.println(r1.getArea();r1.drawRect(
8、);/调用对象的方法调用对象的方法intc=0;tryc=System.in.read();catch(IOExceptione)class Variableclass Variable /成员变量成员变量 int x=0,y=0,z=0;int x=0,y=0,z=0;/成员方法成员方法 void init(int x,int y)void init(int x,int y)this.x=x;this.x=x;this.y=y;this.y=y;int z=5 int z=5;System.out.println(“*in init*”);System.out.println(“*in in
9、it*”);System.out.println(“x=”+x+“y=”+y+“z=”+z);System.out.println(“x=”+x+“y=”+y+“z=”+z);public class VariableTestpublic class VariableTest /main/main方法方法 public static void main(String args)public static void main(String args)/类实例化类实例化 Variable v=new Variable();Variable v=new Variable();System.out.p
10、rintln(“*before init*”);System.out.println(“*before init*”);System.out.println(“x=”+“y=”+“z=”+);System.out.println(“x=”+“y=”+“z=”+);/访问成员方法v.init(25,40);System.out.println(“*after init*”);System.out.println(“*after init*”);System.out.println(“x=”+“y=”+“z=”+);System.out.println(“x=”+“y=”+“z=”+);int c
11、=0;int c=0;try c=System.in.read();try c=System.in.read();catch(IOException e)catch(IOException e)结果为:*beforeinit*x=0y=0z=0*ininit*x=25y=40z=5*afterinit*x=25y=40z=03.3.2 类的说明类的说明一般格式:修饰符class类名extends子句implements子句(1)修饰符:abstract抽象类final最终类public公有protected保护private私有 friendly友好friendly:友好类当未显示指定访问权限
12、,隐含地认为friendlyprotected:保护类.能被本类,子类,同一包中的类访问(2)extends继承某个基类(3)implements实现接口3.3.3 成员变量成员变量类的状态是通过成员变量来表示的,其说明在类体内,方法体外变量修饰符类型名字;(1)变量修饰符A.static:静态变量,可以直接被引用,而不需引用类得到实例Classname.member例子见下一页B.final:变量的值在整个执行过程中不能改变(常量)C.访问权限 类(static)变量在所有类的实例中共享,可以被标记为public或private.如果被标记为public而没有该类的实例,可以从该类的外部访问
13、.例子:(static变量)publicclassCountprivateintserialNumber;privatestaticintcounter=0;publicCount()counter+;serialNumber=counter;这个例子中,被创建的每个对象被赋于一个独特的序号,从1开始并继续往上。变量counter在所有实例中共享,所以,当一个对象的构造函数增加counter时,被创建的下一个对象接受增加过的值。Static变量在某种程度上与其它语言中的全局变量相似。Java编程语言没有这样的全局语言,但static变量是可以从类的任何实例访问的单个变量。如果static变量没
14、有被标记成private,它可能会被从该类的外部进行访问。要这样做,不需要类的实例,可以通过类名指向它。public class StaticVar public static int number;public class OtherClass public void method()int x=StaticVar.number;注-非静态变量只限于实例,并只能通过实例引用被访问。friendly:友好当未显示指定访问权限,隐含地认为friendly同一的包中其他的类可以引用,其他包中的不可以。protected:保护能被本类,子类,同一包中的类访问transient:声明为临时变量。当对象
15、不在使用时,JVM需要将对象的所有的成员变量和成员方法进行保存。如果想JVM忽略变量的保存,即可以使用此定义。volatile:声明为受异步保护的变量。在多线程运行环境中,一个成员变量可能被多个线程修改。如果想保持变量的一致性,即可以使用此定义。类子类同一包中的类所有类privateprivateprotectedprotectedpublicfriendly+类的成员变量和成员方法的访问权限符的含义3.3.4 方法的定义和实现方法的定义和实现用方法来实现对象的行为(1)方法的说明:修饰符返回类型方法名(参数表)1返回类型:变量和对象(注意void)在方法声明中指定的返回类型不为void,方法
16、中必须有return语句,返回指定类型的值.返回值的数据类型必须和声明的一致(或完全一致,或是声明的子类.)2参数表:变量和对象(2)方法的重载在同一类中用相同的名字定义多个方法,同名的方法利用参数的个数和类型来区分.例子(application):例子4:import java.awt.*;import java.awt.*;import MethodOverLoading;import MethodOverLoading;public class MethodOverLoadingTest public class MethodOverLoadingTest public static v
17、oid main(String args)public static void main(String args)MethodOverLoading mth=new MethodOverLoading();MethodOverLoading mth=new MethodOverLoading();mth.receiveData(3);mth.receiveData(3);mth.receiveData(1,3);mth.receiveData(1,3);mth.receiveData(73.929);mth.receiveData(73.929);mth.receiveData(it is r
18、ight?);mth.receiveData(it is right?);class MethodOverLoading class MethodOverLoading void receiveData(int i)void receiveData(int i)System.out.println(receive an int Data);System.out.println(receive an int Data);System.out.println(I=+i);System.out.println(I=+i);void receiveData(int x,int y)void recei
19、veData(int x,int y)System.out.println(receive two int Data);System.out.println(receive two int Data);System.out.println(X=+x+Y=+y);System.out.println(X=+x+Y=+y);void receiveData(double i)void receiveData(double i)System.out.println(receive an double Data);System.out.println(receive an double Data);S
20、ystem.out.println(I=+i);System.out.println(I=+i);void receiveData(String s)void receiveData(String s)System.out.println(receive an String Data);System.out.println(receive an String Data);System.out.println(S=+s);System.out.println(S=+s);例子5(applet):/import java.awt.*;import java.awt.*;import java.ap
21、plet.*;import java.applet.*;public class MethodOverApplet extends Appletpublic class MethodOverApplet extends Applet public void paint(Graphics g)public void paint(Graphics g)mypara mp=new mypara();mypara mp=new mypara();int a=3;int a=3;String b=u are ok?;String b=u are ok?;g.drawString(a=+a+mp.rece
22、iveData(a),10,10);g.drawString(a=+a+mp.receiveData(a),10,10);g.drawString(b=+b+mp.receiveData(b),10,50);g.drawString(b=+b+mp.receiveData(b),10,50);class myparaclass mypara public static String receiveData(int i)public static String receiveData(int i)System.out.println(receive an int Data);System.out
23、.println(receive an int Data);return data is integer.it is+i;return data is integer.it is+i;public static String receiveData(String i)public static String receiveData(String i)System.out.println(receive an String Data);System.out.println(receive an String Data);return data is String.it is+i;return d
24、ata is String.it is+i;注意:方法的声明中,参数的类型和个数一样,只是返回类型不同,编译时报错。重载的方法必须返回相同数据类型。(3)方法体this:当前对象,用于指向当前的对象变量super:用来引用父类中的变量和方法(4)static类方法 没有它所属的类的任何实例,static方法可以被调用.publicclassGeneralFunctionpublicstaticintaddUp(intx,inty)returnx+y;publicclassUseGeneralpublicvoidmethod()inta=9;intb=10;intc=GeneralFunctio
25、n.addUp(a,b);System.out.println(addUp()gives+c);3.3.5 构造和析构成员方法构造和析构成员方法类有一个特殊的方法叫做构造方法,它通常用于初始化类的数据成员。在创建对象时,会自动调用类的构造方法。Java中的构造方法必须与该类具有相同的名字,而且不要声明返回类型。另外,构造方法一般都应用public类型来说明,这样才能在程序任意的位置创建类的实例对象。(1)构造方法的重载(2)super的应用super常用于调用父类的构造方法:super(参数表);除了构造成员方法以外,类还提供了析构成员方法,当对象被从内存中删除时,该成员方法将会被自动调用。通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java编程技术 Java 编程 技术 PPT 课件
限制150内