预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共134页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第2章Java面向对象编程基础2.1类的定义
Java是一种纯面向对象的编程语言,面向对象程序设计的基本思想是将现实世界中的事物抽象为对象,抽象出来的对象被赋给相应的状态和行为,通过对消息的响应完成一定的任务。在现实生活中,任何事物都可以被认为是对象(Object),如:汽车、电视机、时钟、人等。对象都有两个共性:
(1)具有一定的状态和特性。如电视机有尺寸、外形、颜色等外部特性。
(2)每个对象对应一组特定的操作。如电视机有开、关、选择频道等操作。面向对象程序设计方法就是把现实世界中对象的状态和操作抽象为程序设计语言中的对象,达到二者的统一。对同一种对象的所有共性进行抽象,就得到了类的概念。面向对象程序设计中的对象是由描述状态的属性和对这些属性进行维护和操作的一系列方法组成的事务处理单位,类相当于创建对象实例的模板,通过对其实例化得到同一类的不同实例。2.1.1类的声明类声明的格式如下:
[public|friendly][abstract][final]class类名[extends父类名][implements接口名表]
{变量声明;
方法声明;
}包含关键字class的一行称为类头,花括号内的部分称为类体。类声明使用关键词class,后跟类名,类名必须是合法的标识符,在class关键词前面可以使用修饰符。类的修饰符说明了类的属性,主要有访问控制修饰符符、抽象修饰符、最终修饰符等。
public|friendly:访问控制修饰符,在类中使用的访问控制修饰符有public或friendly。
访问控制修饰符不仅针对于类,类的变量、方法的访问也有该项的限制,后面会专门介绍。abstract:抽象修饰符,声明该类不能被实例化。即抽象类不能创建类的实例。抽象类中主要包含一些静态属性和抽象方法,可以由非抽象子类继承。
final:最终修饰符,声明该类不能被继承,即没有子类。
class类名:关键字class表示类声明,类名必须是合法的标识符。
extends父类名:关键词extends声明该类的父类。
implements接口名表:关键词implements声明该类要实现的接口,如果实现多个接口,则各接口之间用逗号分隔。例2-1:类声明。
//程序名:Sample2_1.java
classPrimitiveDefault{//类声明
booleanbl;//成员变量声明
charch;
byteb;
shortsh;
inti;
longl;
floatf;
doubled;
}
publicclassSample2_1{//类声明
publicstaticvoidmain(String[]args){
//应用程序中的main()方法
PrimitiveDefaultpd;//声明对象pd
pd=newPrimitiveDefault();
//为对象pd分配内存,使用new和类中的构造方法
System.out.println(“boolean型变量的缺省值:”+pd.bl);
System.out.println(“char型变量的缺省值:”+pd.ch);
System.out.println(“byte型变量的缺省值:”+pd.b);
System.out.println(“short型变量的缺省值:”+pd.sh);
System.out.println(“int型变量的缺省值:”+pd.i);
System.out.println(“long型变量的缺省值:”+pd.l);
System.out.println(“float型变量的缺省值:”+pd.f);
System.out.println(“double型变量的缺省值:”+pd.d);
}
}
本例中声明了2个类,由public修饰的类名要和文件名相同,类PrimitiveDefalse中声明的8个变量是基本数据类型的变量,Java对基本类型变量的大小事先进行了定义,都赋予了默认值,其大小不随着硬件平台和操作系统的改变而变化,这也正是Java程序具有很强移植能力的原因之一。类Sample2_1中声明的变量pd是引用数据类型的,必须要使用new和构造函数实例化之后才能引用。2.1.2类体成员变量可以是基本数据类型的,也可以是引用数据类型的。成员变量的作用范围是整个类,即在类的所有方法中都有效,但对其它类是不可见的,在其它类中访问属性成员需要声明来源,具体地,是在程序中使用类名或对象名声明。
可以在类体的方法定义中声明和初始化局部变量或对象,这些局部变量只在方法内有意义,在方法外是没有意义的。类体中的一个方法可以调用另一个方法,但Java不允许递归调用,也不允许交叉循环调用,Java也不允许嵌套定义方法