一、 Java中类的定义、类访问权限
1.1 类的定义格式:
[修饰符] class 类名 [extends父类名] [implements接口名列表]
1.2 类修饰符的访问权限:
类修饰符 | 访问权限 |
---|---|
缺省(默认方式) | 这种类只能被同一个包中的类访问; |
public(公共) | 它修饰的类能被所有的类访问; |
abstract(抽象) | 它修饰的类不能被实例化,它可能包含有未实现的方法。 |
extends(继承) | 该保留字用来表明新创建的类继承哪个类, 被继承的类称为此类的父类。extends后面只能跟一个父类名称, 因为Java中一个类最多能继承一个类(单继承)。 |
final(最终) | 它修饰的类不能被继承,即不能有子类。 |
implements (实现) | 该保留字用来表明这个类实现了哪些接口,接口名可以有多个。 |
1.3 关于类访问权限的总结:
1. 具有继承关系的子类可以继承父类的一些成员变量,即可以不创建对象就可以直接访问,如果是 同一个包的子类可以继承到public、缺省和protected修饰的变量,如果是不同的包的子类就只能继承 到public 和protected的; 2. 如果是其他类,不管是一个包还是不在一个包,都要创建该类的对象才能引用 3. 如果是main方法,不管是本类还是非本类,要访问实例变量都要创建对象,可以引申到其他所有 的类方法中 4. 私有成员只能在本类中访问,如果在main方法中访问私有成员 必须创建对象 |
二、 成员变量访问权限
2.1 成员变量访问权限总结为:
(1) 访问修饰符缺省 访问修饰符缺省时,成员变量只能被同一包(package) 中的所有类访问,所以也称为包(package)变量。 (缺省访问修饰符实际是friendly修饰符,但因为friendly不是Java语言的关键字,所以friendly修饰符 不能显式说明。) (2) public(公共) public修饰的成员变量可以被程序中的任何类所访问。由于public成员变量不受限制, 这易使类的对象引起 不希望的修改,建议成员变量尽量不要使用public修饰符。 (3) protected (受保护) protected修饰的成员变量可以被本包及有继承关系的类自由访问。 (4) private (私有) private修饰的成员变量只能在同一个类中使用。这种方式通常是最为安全的。 |
三、 static(静态)——静态变量访问权限
(1)static修饰的成员变量称为类变量(静态变量);不用static修饰的成员变量又叫对象变量(实例变量)。 (2)区别:对象变量依附于具体的对象实例,它的值因具体对象实例的不同而不同,而类变量为该类的所有 对象所共享,它的值不因类的对象不同而不同。 (3)可以通过类来访问静态成员变量,也可以通过该类的对象访问静态成员变量。 形式:类名.成员变量/对象名.成员变量 (4)反过来,非staic的对象方法可以直接使用static的类变量 (5)类方法不能直接调用类中的对象方法(非static方法)。 (6)定义变量时必须当即赋值。 |