目录
三、final:最终的,不可改变的-----单独应用几率极低
一、package和import
1.packag:声明包
- 避免类的同名冲突;
- 同包中的类不能同名,但不同包中的类可以重名;
- 类的全称:包名.类名;
- 包名常有层次。
2.import:导入类
- 同包中的类可以直接访问;
- 不同包的类不可直接访问,若想访问:import.包名.类名
- 先import声明类,在访问类
- 类的全称
二、访问控制修饰符--------保护数据的安全
1.public:公开的,任何类都可以访问(暴露一些东西)
可以隐藏一些东西,暴露一些东西。
2.private:私有的,只有本类,
数据(成员变量)一般都私有化(private),行为(成员方法)大部分都公开(public)
3.protected:受保护的,本类,子类,同包类
4.默认的:什么也不写,本类,同包类-----------------java不建议默认权限
说明
- 类的访问权限只能是public(默认值)
- 类中成员的访问权限如上四种都可以
- 访问权限由高到低依次为:public>protected>默认的>private
三、final:最终的,不可改变的-----单独应用几率极低
- 修饰变量,变量不能被改变
- 修饰方法:方法不能被重写
- 修饰类:类不能被继承
四、static(重点)
1.基本概念:
通常情况下成员变量隶属于对象层级,每创建一个对象就需要申请独立的内存空间来存放对象独立的成员变量信息,若所有对象的某个成员变量数值完全一样却又单独存放会造成内存空间浪费。
为了解决上述问题,则使用static关键字修饰成员变量表达静态的含义,此时该成员变量由对象层级提升为类层级被所有对象共享,该成员变量随着类的加载准备就绪,与是否创建无关。
static关键字也可以修饰成员方法,推荐使用 类名.的方式访问。
2.使用方法:
(1):在非静态的成员方法中既能访问非静态的成员也能访问静态的成员
(成员:成员变量+成员方法,静态成员不能呗所有对象共享)
(2):在静态的成员方法只能访问静态的成员不能访问非静态的成员
(成员:成员变量+成员方法,调用静态方法时还没有创建对象)
(3):只有隶属于类层级被所有对象共享的内容才能使用static修饰:
(不能滥用关键字static)
被修饰的成员有什么特点:
- 随着类的加载而加载
- 优先于对象存在
- 被多有对象所共享
- 可以直接被类名调用
使用注意:
- 静态方法只能访问静态成员
- 静态方法中不可以写this.super关键字
- 主函数是静态的
补充:
数据(成员变量)私有化(private),行为(方法)大部分公开化(public)
1、成员变量分两种:
实例变量:没有static修饰,属于对象的,存储在堆中,有几个对象就有几份
通过引用(对象)点来访问
静态变量:由static修饰,属于类的,存储在方法区中,只有一份
通过类名点来访问
2、内存管理:由JVM来管理
堆:new出来的对象(包括实例变量)
栈:局部变量(包括方法的参数)
3、 方法区:.class字节码文件(包括静态变量、所有方法)