修饰符的探讨

一. 关于类中组成部分的名字

非静态变量:又称为成员变量,实例变量

静态变量:又称为静态成员变量,类变量

非静态方法:又称为成员方法,实例方法

静态方法:又称为静态成员方法

对于静态变量与静态方法来说,它是属于这个类的范围的。对于非静态变量与方法,它是属于实例范围的。

二.类中的修饰符

1.无修饰符

java中,当一个源文件有多个类的时候,只允许有一个public类,其余的类不能有public

2.类的可见性

类的访问控制符       对同个源文件的类可见                         对同个包的类可见                 对不同包的类可见                      
public
默认修饰符 ×

3.finnal修饰符

当一个类不能被继承时,用finnal修饰符修饰

三.方法的访问控制符

public:没有使用限制

默认(无):只能被同一个包内的类使用

protected:只能被子类使用

private:只能在本类中使用

finnal关键字不允许方法被覆盖

关于静态方法的理解:

static的理解:

static关键字可以用来修饰方法和变量。如果一个变量使用static变量修饰,那么这个变量就是类范围内的一个属性,叫做类变量(静态变量)类中的所有对象都共享这个属性,创建对象后不会创建被static修饰的变量,static +类型名+变量名。

当方法被static修饰时:

>>和使用static修饰的变量一样,static修饰的方法可以通过类名直接调用

>>类方法中不能用this关键字,不能使用非静态变量与非静态方法

>>类方法内可以调用类方法和使用类变量

>>没有被static修饰的方法可以调用类方法

所以静态方法是没有动态特性的,对比多态。

四.变量的修饰符

 访问控制符  对所在类可见  对同个包的类可见  对子类可见  对不在同个包中的类可见
 public  √  √  √  √
 protected  √  √  √  ×
 默认  √  √  ×  ×
 private  √  ×  ×  ×

 变量的覆盖:如果子类从超类继承了一个变量,而同时子类的本身也定义了一个类型与变量名相同的成员变量,那么子类的变量将覆盖超类的变量

finnal关键字:1.必须在创建变量时给它赋值  2.变量的值不可被改变
原文地址:https://www.cnblogs.com/xiaolei-meow/p/6535144.html