笔记---java面向对象进阶之static关键字


活动地址: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关键字的学习实践

略 在今后使用到的项目实践部分中补齐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值