关于java:Java-static-它为什么叫静态一语道破天机

4次阅读

共计 1889 个字符,预计需要花费 5 分钟才能阅读完成。

思考:大家有没有想过一个问题,动态它为什么叫动态?因为书上或者别的文章里这么写的都这么叫的?所以也跟着这么叫?????

1、举例剖析了解动态

那明天咱们就剖析剖析,搞定它!

为了解决上边的问题,咱们再抛出一个问题:有静必定就有动啊,那这个“静”是绝对于谁来说的?

要讲明确这个,首先须要晓得 Java 中 类和对象之间的关系

类是对某一类具备 独特特色 的事物的形象,对象是依据类产生出的具体实例。

请留神:这里说的 独特特色 是指具备独特的 属性(字段)和独特的行为(办法),相对不是指这些事物的 数据 都雷同

举个例子:张三和李四都属于学生。这里的张三、李四就是具体的实例对象;学生就是一个形象进去的具备独特个性的事物,学生这类事物都有都有班级、姓名、年龄、性别等 属性,所以学生是个类。

然而张三这个具体的实例对象,他的班级是 1 班,姓名是张三,年龄是 18 岁,性别是男;

李四这个具体的实例对象,她的班级是 2 班,姓名是李四,年龄是 18 岁,性别是女。

这里的 1 班 2 班,18 岁,男,女都是具体对象的具体 数据 ,这些数据是随着张三、李四等这些不同实例对象的变动而变动的,是随着对象存储的,这就是上边说的绝对于静来说的那个

那什么是静呢?说完了动,静就很简略了,静就是不随着对象的变动而变动,是 这类事物 共有的数据,留神标红的几个字,也就是说这些静的数据的是随着类存储的,不是随着对象变得

所以动态变量又称之为“类变量”,非动态的变量又称之为“实例变量”

持续上边的例子,学生类再加个字段“country(国家)”,假如咱们只探讨中国范畴内,那么 ”country” 这个字段就能够定义成动态的,因为张三、李四以及其它所有的学生对象,他们 country 这个字段的值都是 China,”China” 这个值是学生类所有对象都有的

所以动态的就是这个类共有的。静就是大家(类)都有的共有的,是绝对于随着对象变动而变动的“动”而言的

前边说了那么多是为了帮忙大家更容易的去了解。

总之简略的一句话:动态的是随着类的,非动态是随着对象的

那具体什么时候能够应用动态呢?

2、什么时候能够应用动态?

因为动态润饰的内容有成员变量和成员办法,所以答复这个问题得从两方面动手

什么时候能够定义动态变量?

当类中呈现所有对象都共有的数据时,该字段就能够定义成动态的。比方方才说的学生类里的国家这个字段就能够定义成动态的

什么时候能够定义静态方法?

当办法外部没有应用到非静态数据(对象的特有数据)时,那么该办法就能够定义成动态的

大家平时见到的工具类 XxxUtils 就很合乎上边的场景,所以大家见到的工具类基本上都是动态的,不必 new 对象,间接 XxxUtils.xxx()调用

3、动态的其余内容了解

了解了上述内容后,下边的内容就不难理解了

动态:static 关键字

static 关键字的用法:它是一个修饰符,用于润饰成员(成员变量,成员办法)

动态的特点:

1、随着类的加载而加载(就是说这个类一被加载进内存,动态的货色就随着加载进去了,这时候对象还不存在呢)

2、动态先于对象存在

3、被所有的对象共享

4、能够间接被类名调用,也能够被对象调用

动态应用的注意事项:

1、静态方法只能拜访动态成员(属性和办法),不能拜访非动态成员。因为动态在的时候非动态的还没在呢

2、非静态方法能够拜访动态成员,也能够拜访非动态成员

3、因为动态先于对象的存在而存在,所以静态方法中不能够呈现 this、super 关键字。

动态的利弊:

1、利:对于所有对象都共有的数据,没必要每个对象中都存在一份,能够应用动态,节俭空间;能够不 new 对象,间接用类名调用

2、弊:因为动态是随着类存在的,所以生命周期过长;拜访呈现局限性,只能拜访动态

动态和非动态的数据在内存中的存储也有所不同,下篇会接着讲一下它们在内存中是怎么存的,以及实例化一个对象具体都做了些啥

以上就是自己对 java 中动态的一些了解和总结,若有不对的中央,欢送留言指出,一起学习提高

作者:嗑嗑磕嗑瓜子的猫

本文链接:blog.csdn.net/ju_362204801/article/details/90738966

版权申明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协定,转载请附上原文出处链接和本申明。

近期热文举荐:

1.600+ 道 Java 面试题及答案整顿(2021 最新版)

2. 终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!

3. 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!

4.Spring Cloud 2020.0.0 正式公布,全新颠覆性版本!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0