类与对象
一、定义类
计算机世界的类是对试题建模的一种机制。设计类就是对实体进行分类并将实体的数据和行为封装在一个代码块中。类是具有共同性质实体的统称。类的一个实例就是对象。一个类可以构建多个对象。
类定义的一般格式:
可选public可选abstract可选final class 类名{
字段、方法等成员以及构造方法
}
二、构造方法及其重载
构造方法也叫构造函数,是创建对象时所执行的特殊方法,一般用于初始化新的对象的字段。构造方法只能在类中定义。
构造方法的一般格式为:
可选public等 构造方法名(可选形参表) 可选throws子句{
方法体实码
}
构造方法通常声明为public,因为构造方法主要给其他类调用。构造方法名必须和类名相同,可以不带参数,也可以有多个参数。构造方法不能声明返回类型,也不能使用void声明。因为构造方法调用后能返回类的对象,所以构造方法返回类型实质上就是其所在的类,由于与类名相同,所以构造方法本省已包含返回类型信息,因此无需再声明返回类型。
public Circle(){ //构造方法一 num++; } public Circle(double radius) throws Exception{ //构造方法二 if(radius<0){ throw new Exception("负数不能做圆的半径"); }else{ this.radius=radius; num++; } }
调用构造方法构建对象时,必须使用关键字new。
Circle Circle=new Circle();
一个类中编写多个构造方法成为构造方法重载,此时各个构造方法的参数类型、个数、排序不能相同。
三、访问控制修饰符
类修饰符public
类的访问控制有两种:一是不用修饰符的(默认)包访问性;二是使用public。包访问性表示类的适用范围局限于其所在的包,而public表示公开的,可以被其他包所访问。注意:类和接口都只能用public修饰,不能使用protected或private修饰。一个源文件可以定义多个类和接口,但只有与文件主名同名的类或接口才能使用public修饰
类成员修饰符public、protected和private
访问级别 含义
public 公共成员,访问不受限制,访问级别高,范围最大。
protected 受保护的成员,能被所有派生类继承,但访问仅限于本包。
默认的 包可访问的成员,访问限于所在的类。
private 私有的成员,访问仅限于所在的类,访问级别最低,范围最小。
四、静态成员和实例成员
使用static声明静态成员
类的字段和方法均可选用关键字static修饰,这样的成员称为静态成员(静态字段和静态方法)。静态成员能被所有对象共享,非静态成员只能被各个对象独占,在类外部使用静态成员,要用类名作前缀。如Circle.getNum()。在类的内部可以用类名引用也可以直接引用。
使用类名作前缀引用静态成员的一般形式:
类名.方法名
类名.字段名
实例成员与关键字this
与静态成员相对,没有使用关键字static修饰的成员,称为实例成员。实例成员就是非静态成员。每创建一个对象就创建了该对象独有的实例成员。在类的外部使用非私有的实例成员时,只能用对象名来引用,不能以类名作前缀,只能通过对象调用实例方法。关键字this代指当前对象。
使用对象名作前缀引用实例成员的一般形式:
对象名.方法名
对象名.字段名
五、使用final声明方法
关键字final除了声明常量还能声明方法,使用final声明的方法就是最终方法不可再更改,不允许派生子类重写。关键字final还能声明类,所声明的类就是最终类也是不可在更改。
浙公网安备 33010602011771号