- 封装是对类提供的方法实现对隐藏信息的操作和访问,但留出了访问的借口,以提高类的信息安全性;
- 包:
package 包名;
- 必须放在源文件的第一行;
- 一个java源文件只能有一个package语句;
- 包名全英文小写;
- 命名方式:域名倒序+模块+功能
import 包名.类名;
- 导入全部类:import com.imooc.*;
- 导入指定类:import com.imooc.animal.Cat;
- 静态方法中无法直接访问类中的非静态方法,但可以通过
对象.成员
或类.成员
调用; - 代码块:普通代码块、构造代码块、静态代码块优先级依次递增,注意不管实例化多少对象,静态代码块只会运行一次;
class Cat{private String name;private int age;private String species;private static int price;public Cat(){// 无参构造方法}{// 构造代码块,在创建对象时调用,优先于构造方法执行}static {// 静态代码块,类加载时候调用,优先于构造代码块执行price = 100;Cat cat = new Cat();cat.name = "花花"; //无法直接访问非静态成员}public int example(){{// 普通代码块}}
}
- 统一方法中若有多个代码块,代码块中定义的变量生存周期仅限于该代码块,若该代码块执行完成,那么该代码块的内存也会被回收;
- 静态成员(静态属性/静态方法)在类加载时候产生,在类消亡时释放,生命周期很长,内存资源占用长;