封装
面向对象三大特征之方一——封装
封装的概念:1.将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。2.把尽可能多的东西藏起来,对外提供便捷的接口。
封装的两个大致原则:把所有的属性隐藏起来。
封装的好处:1.便于使用者正确使用系统,防止错误修改属性 2.有助于系统之间的松耦合,提高系统独立性 3.提高软件的可重用性 4 .降低了构建大型系统的风险。
同包内 类内 不同包 任何地方
public 可以访问 可以访问 可以访问 可以访问
protected 可以访问 可以访问 不可以访问 不可以
private 不可以访问 可以访问 不可以访问 不可以
默认修饰符 可以访问 可以访问 不可以访问 不可以
static代码块
JVM加载类时,加载静态代码块:1.如果有多个静态块,按顺序加载 2.每个静态代码块只会被执行一次。
public class StaticTest{ StaticTest st1=new StaticTest();
static int num=100; StaticTest st2=new StaticTest();
static{ System.out.println(StaticTest.num);
num+=100;
System.out.println(num);
}
static{
num+=100;
System.out.println(num);
}
}
STATIC变量
类的成员变量包括
类变量(静态变量)
1.被static修饰的变量
2.在内存中只有一个拷贝
3.类内部,可在任何方法内直接访问静态变量
4.其他类中,可以直接通过类名访问
实例变量
1.没有被static修饰的变量
2.每创造一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响
static方法
静态方法:可直接通过类名访问
1.静态方法中不能使用this和super
2.不能直接访问所属类的实例变量和实例方法
3.可直接访问类的静态变量和静态方法
实例方法:通过实例访问
可直接访问所属类的静态变量、静态方法、实例变量和实例方法
静态方法必须被实现 main就是最常用的静态方法