资源描述:
《java面向对象编程基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章Java面向对象编程基础4.1Java的类4.2类的成员变量与方法(类体)4.1.1类的基本结构4.1.2类首定义4.1.3Java源程序结构(略)4.1Java的类类是组成Java程序的基本要素,是具有相同特征的多个对象的模板,它封装了这些对象的所有共同特征。对象是类的实例。类只是一个抽象的模型,利用这个抽象的模型可以构造具体的实例—对象。一个类由两部分组成:4.1.1类的基本结构类的例子publicclassHello类首{publicstaticvoidmain(String[]args){System.
2、out.print("Hello!");}类体}类首说明{类体}publicclassPoint//定义点类{publicintx;//成员变量说明,定义点的x坐标publicinty;//成员变量说明,定义点的y坐标publicPoint(intX,intY)//带参数构造方法,设置点的坐标{x=X;y=Y;}publicdoubledistance()//成员方法,计算到原点的距离{returnMath.sqrt(x*x+y*y);}}例4-1点类publicclassStudent//定义学生类{publicS
3、tringname;//学生姓名publicStringnumber;//学生编号privateintage;//学生年龄privateintmath,physics;//两门课程成绩publicStudent(Stringna,Stringnu,inta,intm,intp){name=na;number=nu;age=a;math=m;physics=p;}publicvoidsetMath(intm){math=m;}publicvoidsetPhysics(intp){physics=p;}publicvoi
4、dgetMath(){returnmath;}publicvoidgetPhysics(){returnphysics;}publicintaverage()//计算平均成绩{return(math+physics)/2;}}例4-2学生类类首定义格式如下:[修饰符]class类名[extends父类名][implements接口名列表]类名是所创建的类的名字,可以是任意的Java标识符。根据Java命名的约定,一般地,类名的每个有意义的单词的首字母大写,其余字母小写。类的修饰符分为两类:访问修饰符:缺省(默认方式)
5、、public非访问修饰符:abstract、final一个类可以同时有多个修饰符,但是不能有相同的修饰符,abstract和final也不能同时有。修饰符无先后顺序之分。修饰符及其它保留字的具体含义如下:4.1.2类首定义publicclassHello//类首{publicstaticvoidmain(String[]args){System.out.print("Hello!");}}缺省(默认方式)这种类只能被同一个包中的类访问;public(公共)它修饰的类能被所有的类访问;abstract(抽象)它修饰的
6、类不能被实例化,它可能包含有未实现的方法。final(最终)它修饰的类不能被继承,即不能有子类。extends(继承)该保留字用来表明新创建的类继承哪个类,被继承的类称为此类的父类。extends后面只能跟一个父类名称,因为Java中一个类最多能继承一个类(单继承)。implements(实现)该保留字用来表明这个类实现了哪些接口,接口名可以有多个。4.2类的成员变量与方法(类体)类体中定义该类所有的成员变量和方法,其形式如下:{//类体开始[成员变量说明][成员方法说明]}//类体结束类体中的变量和方法都是可选的,
7、也没有先后顺序之分。(这与C++中的不同!C++中前面的函数中不可调用后面定义的函数,除非在前面有原型语句)。1.成员变量说明2.构造方法说明3.创建类对象4.成员方法说明5.成员方法调用.变量方法小结6.递归方法成员变量的说明类似于方法的局部变量说明,所不同的是,成员变量定义在类中,是类成员的一部分,整个类都可以访问它。Java中成员变量说明形式如下:[修饰符]类型成员变量名1,…,成员变量名n;成员变量的类型可以是基本类型或类。成员变量名要符合Java的标识符规定。成员变量的修饰符也分为两类:访问修饰符:缺省、p
8、ublic、protected、private非访问修饰符:final、static修饰符的具体意义如下:1.成员变量说明访问修饰符:(1)访问修饰符缺省访问修饰符缺省时,成员变量只能被同一包(package)中的所有类访问,所以也称为包(package)变量。(缺省访问修饰符实际是friendly修饰符,但因为friendly不是Java语言