1、类声明部分
格式为:
[修饰符] class 类名 [extends 父类名] [implements 接口名列表]
类的修饰符有private、public、abstract、final。一个类可以同时有多个修饰符,当有多个修饰符时这些修饰符没有先后顺序之分,可以按照任意顺序排列。
l private(私有):被修饰的类只能被同一包中的类访问,这是Java默认的方式。
l public(公共):被修饰的类能够被所有的类访问。
l abstract(抽象):被修饰的类不能被实例化,没有实现的方法。
l final(最终):被修饰的类不能被继承,即不能有子类。
需要注意的是,abstract和final不能同时作为一个类的修饰符。
类名是所创建的类的名称,类名可以是任意的Java标识符,根据Java命名的约定,类名每个有意义的单词的首字母要大写,其余字母小写。
extends(继承)关键字用来表明新创建的类继承哪个类,被继承的类称为此类的父类,也就是说extends后面只能跟一个父类的名称。
implements(实现)用来表明这个类实现了哪个接口,接口名称可以有多个。
2、类体部分
类体是类的主体部分,包含了所有实现类功能的程序代码。包括成员变量和成员方法,成员变量用来描述类的属性,方法描述类的行为(或功能)。Java类除了继承它的父类中的变量和方法外,一般仍会在类体中明确定义自己的变量和方法。程序中,成员变量应尽量放在方法定义之前。类体要用“{}”括起来。类体定义的格式如下:
类体{
成员变量声明及初始化
方法声明及方法体
}
3、成员变量和局部变量
变量声明中定义的变量被称为类的成员变量,在方法体中定义的变量和方法的参数被称为局部变量。
声明数据成员变量必须给出变量名及其所属的类型,其声明的格式为:
[修饰符] 成员变量类型 成员变量名列表
成员变量的修饰符有:缺省访问修饰符、public、protected、private、final、static、transient和volatile。
l 缺省访问修饰符(friendly):缺省访问修饰符的成员变量可以被同一包中的任何类访问。
l public:修饰的成员变量可以被项目文件中的任何方法访问。
l protected:修饰的成员变量可以被有继承关系的类自由访问,即子类可以访问。
l private:修饰的成员变量只能在同一个类中使用。
l static:修饰的成员变量又称为类变量(或静态变量),不加static修饰的成员变量叫做实例变量(对象变量)。实例变量依附于具体的对象实例,其值因具体对象实例的不同而不同,而类对象为该类的所有对象共享,其值不因类的对象不同而不同。
l final:修饰的成员变量叫做最终成员变量。从一开始创建该变量时就为其设定了一个值,在以后的运行过程中,这个值将一直保持不变,所以又称为常量。
l transient:指名变量是一个暂时性状态。
l volatile:指明变量是一个共享变量,用来修饰由多个并发线程共享的变量,使得各个线程对该变量的访问能保持一致。
成员变量和局部变量的类型可以是Java中任意的数据类型,包括简单类型、类、接口和数组,在一个类中的成员变量名应该是唯一的。
成员变量在整个类内都有效,而局部变量只在定义它的方法内有效。
虽然成员变量与它在类中的书写位置无关,但不提倡把成员变量的定义分散地写在方法之间或类体的其他部分。
如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效,例如:
class ren{
int x=10,y;
void f(){
int x=2;
y=x; //y得到的值是2,不是10
}
}
成员变量若被隐藏后仍然想在该方法内使用成员变量,就必须使用关键字this。
4 方法
通过声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。方法的定义包括两部分,方法声明和方法体。
其基本格式为:
方法声明部分{
方法体的内容
return [表达式]
}