资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,4,章 面向对象程序设计基础,主要内容,4.1,面向对象的基本概念,4.2,类的定义,4.3,类和对象的使用,4.4,包,package,4.5,成员变量及方法的访问权限,4.6 final,、,this,及其它,4.1,面向对象的基本概念,、为什么要面向对象?什么是面向对象?,、面向对象的发展史,3,、面向对象的基本概念和基本原理,面向对象的基本概念和基本原理,对象,类,抽象性,封装性,继承性,多态性,第,4,章 面向对象程序设计基础,4.1,面向对象的基本概念,4.2,类的定义,4.3,类和对象的使用,4.4,包,package,4.5,成员变量及方法的访问权限,4.6 final,、,this,及其它,4.2,类的定义,4.2.1,类声明,4.2.2,类体,4.2.3,实例化对象,4.2.4,构造方法说明,4.2.5,对象的清除,4.2.6,方法重载,4.2.1,类声明,一个类的实现包括两个部分:类声明和类体。,4.2.1,类声明,类声明的格式如下:,修饰符,class,类名,extends,超类名,implements,接口名列表,修饰符可能的选项有:,publicabstract|final,4.2.1,类声明,类的,声明,举例:,class,Circle,point center;/,属性或成员,float radius;/,属性或成员,double,getArea,()/,方法,return radius*,radius,*3.1415926;,4.2.2,类体,类体中定义了该类所有的成员变量和该类所支持的方法,其格式说明如下:,成员变量说明,成员方法说明,4.2.2,类体,类体:,public|protected|private static final,transient volatile type,variableName,;,/,成员变量,public|protected|private static,final,|abstract native synchronized,returnType,methodName(paramList,)throws,exceptionList,statements,/,成员方法,通常成员变量的声明在成员方法声明之前。,4.2.2,类体,1,成员变量说明,修饰符,成员变量类型 成员变量名列表,;,例如:,private,int,number;,成员变量的修饰符有以下几种:缺省访问修饰符、,public,、,protected,、,private,、,final,、,static,、,transient,和,volatile,。,4.2.2,类体,2,、成员方法说明,方法首部说明的格式如下:,方法修饰符,返回值类型 方法名(,形参列表,),throws,异常列表,可能的选项有:,public|protected|private,staticfinal,|abstract native synchronized,returnType,methodName(paramList)throws,exceptionList,/,方法声明,4.2.2,类体,3,、方法体,由“,”,和“,”,括起来的语句序列构成。,方法体也可以是一个分号“;”,表示无方法体,该方法没有实现。,当且仅当方法的修饰符中有,abstract,或,native,时,方法才无方法体。,4.2.2,类体,例如求解三角形问题时可以编写,Triangle,类,在,Triangle,类可以有如下的个方法。程序如下:,class Triangle,double,sideA,sideB,sideC,;/,三角形的三边,void,setSide(double,a,double b,double c)/,该方法用来赋初值,sideA,=a;,sideB,=b;,sideC,=c;,boolean,isOrNotTriangle,()/,判断是否是三角形的方法,if(sideA+sideB,sideC&sideA+sideC,sideB&sideB+sideC,sideA,),return true;,else,return,flase,;,4.2.3,实例化对象,创建一个对象包括对象的声明、为对象分配内存空间和赋初值三个步骤。,4.2.3,实例化对象,【,例,4-1,】,下面的例子将建立雇员信息类,EmpInfo,,并实例化对象,然后打印出若干信息。,/,EmpInfo.java,public class,EmpInfo,String name;/,雇员的姓名,String designation;/,雇员的职务,String department;/,雇员的部门,void print()/,成员方法,System.out.println(name,+is +designation+at +department);,4.2.3,实例化对象,public static void main(String,argv,),EmpInfo,employee=new,EmpInfo,();/,创建对象并实例化,mployee.name,=Robert,Javaman,;/,给成员变量赋值,employee.designation,=Manager ;/,给成员变量赋值,employee.department,=Coffee Shop ;/,给成员变量赋值,employee.print,();/,调用方法,print(),运行结果如下:,Robert,Javaman,is Manager at Coffee Shop,4.2.4,构造方法,构造方法说明形式如下:,构造方法修饰符,方法名(,形式参数列表,),throws,异常列表,方法体,构造方法修饰符一般为,public,,,方法名与类名相同。,构造方法无返回值,只能用,new,关键字调用。,4.2.4,构造方法,4.2.4,构造方法,构造方法分为,缺省的构造方法,(不带参数)和,带参数的构造方法。,带参数的构造方法,带有参数的构造方法可以按需要将一些指定的参数传递给对象的变量。,4.2.4,构造方法,【,例,4-3,】,在例,4-1,的基础上编写带参数的构造方法。,/,EmpInfoC.java,public class,EmpInfoC,String name;/,雇员的姓名,String designation;/,雇员的职务,String department;/,雇员的部门,/,带参数的构造方法,public,EmpInfoC(String,name,String designation,String department),this.name=name;,this.designation=designation;,this.department=department;,void print()/,成员方法,System.out.println(name,+is +designation+at +department);,4.2.5,对象的清除,Java,运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存,完成对象的清除。,总结,固定格式声明的三个方法:,、构造方法,、,public static void main(string,args,),4.2.6,方法重载,成员方法重载,构造方法重载,4.2.6,方法重载,【,例,4-4】,关于成员方法重载的例子,/,DemoOverload.java,class Demo2,int,a,b,;,int,method()/,成员方法一,return,a+b,;,int,method(int,c)/,成员方法二,return,a+b+c,;,int,method(int,c,int,d)/,成员方法三,return,a+b+c+d,;,Demo2(int,a,int,b)/,构造方法,this.a,=a;,this.b,=b;,4.2.6,方法重载,【,例,4-4】,关于成员方法重载的例子,public class,DemoOverload,public static void main(String,args,),Demo2 aDemo2=new Demo2(1,2);/,实例化,int,a=aDemo2.method();/,调用成员方法一,System.out.println(a,);,int,b=aDemo2.method(3);/,调用成员方法二,System.out.println(b,);,int,c=aDemo2.method(3,4);/,调用成员方法三,System.out.println(c,);,上面程序的运行结果为,:,3,6,10,4.2.6,方法重载,【,例,4-5,】,构造方法也可以重载,,/,ConstructionOverload.java,class Demo,int,a,b,c;/,成员变量,public Demo()/,构造方法,1,public,Demo(int,a)/,构造方法,2,this.a=a;,public,Demo(int,a,int,b)/,构造方法,3,this.a=a;,this.b=b;,public,Demo(int,a,int,b,int,c)/,构造方法,4,this.a=a;,this.b=b;,this.c=c;,第,4,章 面向对象程序设计基础,4.1,面向对象的基本概念,4.2,类的定义,4.3,类和对象的使用,4.4,包,package,4.5,成员变量及方法的访问权限,4.6 final,、,this,及其它,4.3,类和对象的使用,4.3.1,实例变量和类变量,4.3.2,实例方法和类方法,【,例,4-6】,下面是关于实例变量的例子,/,instVar.java,class,koA,int,a;,public void display(),System.out.print(a=+a);,public class,instVar,public static void main(String,args,),koA,a1=new,koA,();a1.a=10;/a1,是一个实例对象,koA,a2=new,koA,();a2.a=20;/a2,是另一个实例对象,a1.display();,a2.display();,运行结果为,a=10 a=20,【,例,4-7】,下面是类变量的例子,/,classVar.java,class,koB,static,int,a;,public void display(),System.out.print(a=+a);,public class,classVar,public static void main(String,args,),koB,a1=new,koB,();a1.a=10;/a1,是一个实例对象,koB,a2=new,koB,();a2.a=20;/a2,是另一个实例对象,koB.a,=50;/,直接访问类变量,a1.display();,a2.display();,运行结果为:,a=50 a=50,4.3.2,实例方法和类方法,【,例,4-1,】,下面的例子将建立雇员信息类,EmpInfo,,并实例化对象,然后打印出若干信息。,/,EmpInfo.java,public class,EmpInfo,String name;/,雇员的姓名,String designation;/,雇员的职务,String department;/,雇员的部门,void print()/,成员方法,System.out.println(name,+is +designation+at +department);,4.3.2,实例化对象,public static void,main(String,argv,),EmpInfo,employee=new,EmpInfo,();/,创建对象并实例化,employee.name,=Robert,Javaman,;/,给成员变量赋值,employee.designation,=Manager ;/,给成员变量赋值,employee.department,=Coffee Shop ;/,给成员变量赋值,employee.print,();/,调用方法,print(),运行结果如下:,Robert,Javaman,is Manager at Coffee Shop,4.3.2,实例方法和类方法,【,例,4-8】,下面是类方法使用的例子,/,classMethodTest.java,class member,static,int,classVar,;,int,instanceVar,;,static void,setClassVar(int,i),classVar,=i;,/,instanceVar,=i;/,在类方法中不能引用实例成员。,static,int,getClassVar,(),return,classVar,;,void,setInstanceVar(int,i),classVar,=i;,instanceVar,=i;,int,getInstanceVar,(),return,instanceVar,;,4.3.2,实例方法和类方法,public class,classMethodTest,public static void main(String,args,),member m1=new member();,member m2=new member();,m1.setClassVar(1);,m2.setClassVar(2);,System.out.println(m1.classVar=+m1.getClassVar()+m2.classVar=+m2.getClassVar();,m1.setInstanceVar(11);,m2.setInstanceVar(22);,System.out.println(m1.InstanceVar=+m1.getInstanceVar()+m2.InstanceVar=+m2.getInstanceVar();,运行结果为:,m1.classVar=2 m2.classVar=2,m1.InstanccVar=11 m2.InstanceVar=22,第,4,章 面向对象程序设计基础,4.1,面向对象的基本概念,4.2,类的定义,4.3,类和对象的使用,4.4,包,package,4.5,成员变量及方法的访问权限,4.6 final,、,this,及其它,4.4 包package,4.4.1 package,语句,4.4.2 import,语句,4.4.3,编译和运行包,第,4,章 面向对象程序设计基础,4.1,面向对象的基本概念,4.2,类的定义,4.3,类和对象的使用,4.4,包,package,4.5,成员变量及方法的访问权限,4.6 final,、,this,及其它,4.5,成员变量及方法的访问权限,4.5.1,公共类型,(public),4.5.2,保护类型,(protected),4.5.3,私有类型,(private),4.5,成员变量及方法的访问权限,在,Java,中,可以选择四种访问方式:,public,、,private,、,protected,和,default.,第,4,章 面向对象程序设计基础,4.1,面向对象的基本概念,4.2,类的定义,4.3,类和对象的使用,4.4,包,package,4.5,成员变量及方法的访问权限,4.6 final,、,this,及其它,4.6 final,、,this,及其它,4.6.1 final,关键字,4.6.2 this,引用,4.6.3 super,关键字,4.6.4 null,关键字,4.6.5 java.lang.Object,类介绍,4.6.6,递归方法,4.6.7,命令行参数的输入,4.6.8 JAR,文件的使用,
展开阅读全文