活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
一、对static静态关键字的理解
1.关于static用于修饰成员变量
可以使用static来修饰成员变量使其变成静态成员变量(类变量),静态成员变量在内存中只有一份,可以被类中所有对象访问、修改。
区别:
静态成员变量属于类,只加载一次,内存中只有一份
实例成员变量属于对象
静态成员变量与实例成员变量使用场景:
静态成员变量:通常用于需要被所有对象共享信息时使用。
实例成员变量:属于每个对象,且每个对象表示的信息不同时。(例如name,age等表示每个对象具有的特征)
使用方法:
静态成员变量
类名.静态成员变量
对象.静态成员变量(不推荐)
实例成员变量
对象.实例成员变量
2.关于static用于修饰成员方法
可以使用static来修饰成员方法使其变成静态成员方法(类方法)
区别:
静态成员方法属于类和对象共享
实例成员方法属于对象
静态成员方法与实例成员方法的使用场景:
静态成员方法:表示对象自己行为的,且方法中需要访问实例成员的,则该方法必须申明为实例方法。
实例成员方法:该方法是以执行一个共用功能为目的的,则可以申明为静态方法
使用方法:
静态成员方法
类名.静态成员方法
对象.静态成员方法(不推荐)
实例成员方法
对象.实例成员方法
static访问注意事项:
实例方法可以访问静态的成员,也可以访问当前实例成员
二、对static静态方法的应用
1.static静态方法的应用1
工具类:
类中都是一些静态方法,每个方法都是以完成一个共用的功能为目的,这个类是基本是用给开发人员共同使用的。
应用场景:当有多处地方需要使用同一个功能时。例如登录,注册,验证码等操作。
个人理解为是一段代码的集合,可供其他地方调用,很像是其他编程语言中定义的模块,高内聚,低耦合。
工具类的好处:
1)内部都是一些静态方法,每个方法完成一个功能。
2)一次编写,处处可用,提高代码重用性。
工具类的要求:
建议工具类的构造器私有化处理
工具类不需要创建对象
2.static静态方法的应用2
代码块:
代码块是类的5大成分之一(成员变量、构造器、方法、代码块、内部类),定义在类中方法外。
在java类下,使用{ }括起来的代码称为代码块。
代码块分为静态代码块与构造代码块(了解):
静态代码块格式:static{}
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发一次、只执行一次。
使用场景:在类加载的时候做一些静态数据初始化的操作,以便后续使用。
构造代码块格式:{}
特点:每次创建对象,调用构造执行器时,都会调用该代码块中的代码,并且在构造器执行前执行。
使用场景:初始化实例资源。
3.static静态方法的应用3
单例模式:
可以保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象。例如任务管理器,只能有一个。
饿汉单例模式实现步骤:
1.定义一个类,把构造器私有
2.定义一个静态变量存储一个对象
3.提供一个返回单例对象的方法
三、对static关键字的学习实践
略 在今后使用到的项目实践部分中补齐。