Java类、成员变量、static访问权限(4.1-4.4)



一、 Java中类的定义、类访问权限

1.1 类的定义格式:

[修饰符] class 类名 [extends父类名] [implements接口名列表]


Java类、成员变量、static访问权限(4.1-4.4)

1.2 类修饰符的访问权限:
类修饰符 访问权限
缺省(默认方式) 这种类只能被同一个包中的类访问;
public(公共) 它修饰的类能被所有的类访问;
abstract(抽象) 它修饰的类不能被实例化,它可能包含有未实现的方法。
extends(继承) 该保留字用来表明新创建的类继承哪个类, 被继承的类称为此类的父类。extends后面只能跟一个父类名称, 因为Java中一个类最多能继承一个类(单继承)。
final(最终) 它修饰的类不能被继承,即不能有子类。
implements (实现) 该保留字用来表明这个类实现了哪些接口,接口名可以有多个。

1.3 关于类访问权限的总结:

1. 具有继承关系的子类可以继承父类的一些成员变量,即可以不创建对象就可以直接访问,如果是
同一个包的子类可以继承到public、缺省和protected修饰的变量,如果是不同的包的子类就只能继承
到public 和protected的;
2. 如果是其他类,不管是一个包还是不在一个包,都要创建该类的对象才能引用
3. 如果是main方法,不管是本类还是非本类,要访问实例变量都要创建对象,可以引申到其他所有
的类方法中
4. 私有成员只能在本类中访问,如果在main方法中访问私有成员 必须创建对象


二、 成员变量访问权限


Java类、成员变量、static访问权限(4.1-4.4)


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)定义变量时必须当即赋值。