1.package和import
1.package:声明包
避免类的命名冲突
同包中的类不能同名,但不同包中的类可以同名
类的全程:包名.类名
包名常常用层次结构,建议所有的字母都小写
2.import:导入
同包中的类可以直接访问
不同包中的类不能直接访问,若想访问:
1.先import声明类,再访问类----------建议
2.输入类的全程---------------------------太繁琐不建议
2.访问控制修饰符-------------------保证数据的安全
public:公开的,任何类
private:私有的,本类
protected:受保护的,本类,派生类,同包类
默认的:啥也不写,本类,同包类
补充:
类的访问权限只能是public或默认的
类中成员的访问权限如上4种都可以
访问权限由高到低依次为:public>protected>默认的>private
final:最终的、不可改变的------------单独应用几率极低
修饰变量:变量不能被改变
修饰方法:方法不能被重写
修饰类:类不能被继承
static:静态的
静态变量:
由static修饰
属于类,存储在方法区中,只有一份
常常通过类名点来访问
何时用:所有对象所共享的数据(图片、音频、视频等)
静态方法:
由static修饰
属于类,存储在方法区中,只有一份
常常通过类名点来访问
静态方法中没有隐式this传递,不能直接访问实例成员
何时用:方法的操作与对象无关
静态块:
由static修饰
属于类,在类被加载期间自动执行,一个类只被加载一次,所以静态块只执行一次
何时用:加载/初始化静态资源(图片、音频、视频等)
补充:
数据(成员变量)私有化(private),行为(方法)大部分公开化(public)
成员变量分两种:
实例变量:没有static修饰,属于对象的,存储在堆中,有几个对象就有几份
通过引用(对象)点来访问
静态变量:由static修饰,属于类的,存储在方法区中,只有一份
通过类名点来访问
内存管理:由JVM来管理
堆:new出来的对象(包括实例变量)
栈:局部变量(包括方法的参数)
方法区:.class字节码文件(包括静态变量、所有方法)