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

 
 

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

1.1 类的定义格式:

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

 

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

 

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

 
 

二、 成员变量访问权限

 
2

 
 

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