面向对象第四章(封装、static)
1.package: 1)作用:避免类名的冲突 2)包名可以有层次结构 3)类的全称: 包名.类名,同包中的类不能同名 4)建议:包名所有字母都小写 import: 1)同包中的类可以直接访问, 不同包中的类不能直接访问,想访问有如下两种方式: 1.1)先import声明类再直接使用类------建议 1.2)类的全称------------------------太繁琐、不建议 2.访问控制修饰符: 1)public:公开的, 任何类 2)private:私有的, 本类 3)protected:受保护的, 本类、派生类、同包类 4)默认的:什么也不写, 本类、同包类 说明: 1)类的访问修饰符只能是public或默认的 2)类中成员的访问修饰符如上四种都可以 3.final:最终的、不可改变的----应用率低 1)修饰变量:变量不能被改变 2)修饰方法:方法不能被重写 3)修饰类:类不能被继承 4.static:静态的 1)静态变量: 1.1)由static修饰 1.2)属于类的,存储在方法区中,只有一份 1.3)常常通过类名点来访问 1.4)何时用:所有对象所共享的数据(图片、音频、视频等) 2)静态方法: 2.1)由static修饰 2.2)属于类的,存储在方法区中,只有一份 2.3)常常通过类名点来访问 2.4)静态方法没有隐式this传递, 静态方法中不能直接访问实例成员 2.5)何时用:方法的操作仅与参数相关而与对象无关 3)静态块: 3.1)属于类的,在类被加载期间自动执行, 类只被加载一次,所以静态块只执行一次 3.2)何时用:用于加载/初始化静态资源(图片、音频、视频等) 内存管理: 1)堆:new出来的对象(包括实例变量) 2)栈:局部变量(包括方法的参数) 3)方法区:.class字节码文件(包括方法、静态变量) 成员变量: 1)实例变量:没有static修饰,属于对象的,存储在堆中, 有几个对象就有几份 通过对象名点来访问 2)静态变量:由static修饰,属于类的,存储在方法区中, 只有一份 通过类名点来访问 class Aoo{ int a; //实例变量 static int b; //静态变量 } 数据:私有(派生类的)、受保护(超类的) 行为:公开