3.1.3 类的定义
类是对象的抽象,用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员函数,其中,成员变量用于描述对象的特征,成员变量也被称作对象的属性;成员函数用于描述对象的行为,可简称为方法。
类的定义格式如下所示:
class 类名{
属性;
方法;
}
下面的代码定义了一个名为Student的类,其中包含三个属性name、age、grade,以及两个方法lesson()、homework():
class Student{
String name;
int age;
String grade;
void lesson(){
System.out.println(name+"正在听课。");
}
void homework(){
System.out.println(name+"正在做作业");
}
}
3.1.4 访问控制关键字
Java程序的基本组成单元就是类,以后的程序我们可以看到基本就是由若干个类构成,每个类中都会有若干个成员(属性或方法),这些成员有些只想被本类自己访问,有些可以开放给其它类访问,我们就需要对这些成员的访问权限进行管理。
在类的定义中常用访问控制关键字,用于规定类中的属性、方法能否被其它类访问。
访问范围 | private | default | protected | public |
---|---|---|---|---|
同一类中 | √ | √ | √ | √ |
同一包中的类 | √ | √ | √ | |
不同包中的子类 | √ | √ | ||
全部类 | √ |
简单来说:
- private是私有级,只能被本类中的成员访问。
- default是不加修饰符,可以被本类及同一个包的其它类访问。
- protected是保护级,可以被本类及子类、同一个包的其它类访问。
- public是公有级,可以被所有类访问。
按照访问范围从小到大,依次是private < 不加 < protected < public
这里的包、子类的概念以后会介绍,先记下来。
上面的Student类修改一下:
class Student{
private String name;
private int age;
private String grade;
public void lesson(){
System.out.println(name+"正在听课。");
}
public void homework(){
System.out.println(name+"正在做作业");
}
}
注意:
类也可以使用访问控制修饰,但只能用public或不加。类前加public时类名必须与文件名一致,表示此类可以被其它包访问;类前不加public表示此类不能被其它包访问。
反过来说,一个Java文件中可以放几个类,这个Java文件中定义的所有类都没有使用public修饰,那么这个Java文件的文件名可以是一切合法的文件名;如果一个Java文件中定义了一个public修饰的类,那么这个源文件的文件名必须与public修饰的类名相同。