共计 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 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!