访问修饰符: 类的每一个成员都有一个访问修饰符,用来判断谁可以访问该成员
Java为类中的成员提供了四种访问级别:
1、公开访问级别:使用public关键字修饰
2、受保护的访问级别:使用protected关键字修饰
3、默认访问级别:不写
4、私有访问级别:使用private关键字修饰
关于修饰符的权限:
访问修饰符 本类 同包子类 同包非子类 不同包子类 不同包非子类
public √ √ √ √ √
protected √ √ √ √
默认 √ √ √
private √
封装: 把一个类的属性和方法隐藏起来的过程就是一种封装 (使类中的成员变量都是private,并提供public方法访问这些成员变量的技术。如果 一个成员变量被声明为private,那么它就不能被其它类访问,从而隐藏了类中的成员)
封装的好处:
1、重用
2、利于分工
3、隐藏细节实现
get/set方法: 封装了之后其它类就不能访问该类的成员变量了,怎么办呢?
这样我们就可以为private修饰的成员变量添加get/set方法,提供其它类的访问 如果是getXxx()这种方法,我们称它为访问器,访问器提供了读取的权限
如果是setXxx()这种方法,我们称它为修改器,修改器提供了修改的权限
例如:
class Test{
private String name;
private int age;
//getName()通过调用getName()访问name属性
public String getName(){
return name;
}
//通过调用setName(String name)修改name属性
public void setName(String name){
this.name = name;
}
//通过调用getAge()访问name属性
public int getAge(){
return age;
}
//通过调用setAge(int age)修改age属性
public void setAge(int age){
this.age = age;
}
}
(注:如果没有get方法,其它类不能读取该属性; 如果没有set方法,其它类不能修改该属性)
静态类成员: 静态成员使用关键字static修饰 静态成员的访问修饰符都使用关键字public修饰,调用的时候直接类名.方法名 (类成员不属于对象,属于类)
(注:在静态方法里不能直接访问非静态的属性和方法; 在非静态方法里可以访问静态的属性和方法)
例如:
public class Test{
public static void t(){
System.out.println("这是一个静态方法");
}
public static void main(String[] args){
//调用静态方法的时候可以直接类名.方法名
Test.t();
}
}
!!只要是static修饰的静态属性或者方法都会放在内存的数据段里面, 且都是在类加载时初始化