一、
1.static:修饰成员变量的作用和访问特点
(1)static修饰的成员变量:静态成员变量,只在内存中有一份,可以被共享
静态成员变量用类名
(2)无static修饰,实例成员变量,属于每个对象的,必须用对象名访问
(3)同一个类中静态成员变量的访问可以省略类名
二、
1.成员变量的分类和访问分别是什么样的?
(1)静态成员变量(有static修饰、属于类、加载一次、可以被共享访问)访问格式
类名.静态成员变量(推荐)
对象.静态成员变量(不推荐)
(2)实例成员变量(无static修饰,属于对象)访问格式
对象.实例成员变量
2.两种成员变量各自在什么情况下定义?
静态成员变量:表示在线人数等需要被共享的信息
实例成员变量:属于每个对象,且每个对象的该信息时(如:name,age,money)
3.static修饰成员变量的内存原理
main方法和类加载在方法区
new出来的地址值储存在栈内存、出来一个地址
new出的对象和等号右边的那些加载在堆内存(User类静态变量区)
4.static修饰成员方法
静态成员方法(有static修饰,归属于类)建议用类名访问,也可以用对象访问
实例成员方法:(无static修饰,归属于对象),只能用对象触发访问
5.使用场景
如果:表示对象是自己的行为,且方法中需要访问实例成员的,且该方法必须申明成实例方法
如果该方法是以执行一个共用功能为目的,则可以申明成静态方法
6.static注意事项
静态方法中是不可以出现this(代表当今对象)关键字的
静态方法只能访问静态成员,不能直接访问实例成员(创建一个对象就可以访问了)
实例方法可以访问静态成员,也可以访问实例成员
三、
1.static应用知识
(1)类中都是一些静态方法,每个方法都是以完成一个共用的功能为目的,这个类用来给系统开发人员共同使用的
(2)由于工具类无需创建对象,所以把构造器私有化
2.工具类
内部都是一些静态方法,每个方法完成一个功能
一次编写,处处可用,提高代码复用性
3.工具类有什么要求?
建议工具类的构造器私有化处理
工具类不需要创建对象
四、静态代码块
1. static{ }
静态代码块:有sattic修饰,属于类
与类一起优先加载一次,自动触发执行
用于初始化静态资源
2.实例代码块
无static修饰,属于对象,每次构建对象时,都会触发一次
3.静态代码块的作用
如果要启动系统时,对静态资源进行初始化,则建议使用静态代码块完成数据的初始化操作