| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java里怎样理解类,实例与对象的关系,static的作用 -> 正文阅读 |
|
[Java知识库]Java里怎样理解类,实例与对象的关系,static的作用 |
java里一切皆对象; 类是java程序运行的最小单位; 实例可以是对类的实例;(以下均为类的实例) 先说一些基本的栈内存与堆内存; 栈内存是保存变量的空间; 堆内存是保存其他内容的空间; 如: publilc String a = "123456"; 那么a就会保存到栈内存中,而"123456"则会保存到堆内存中; 一开始定义一个类的时候,这个类存在于堆内存里,没有一个变量(可以理解为指针)指向它; 当定义一个变量a(存在于栈内存中)指向这个类的时候 代码如下: Hello a = new Hello(); 格式: 类名 变量= new 类名(); 一个类可以创建多个实例,多个对象 实际上就是新建多个变量指向同一个类 你可以把这个类理解成人类,而我们是人类的一个个实例 连着上面的我们来理解static的作用; 理解static: static的主要作用就是区分这个类是属于类本身还是类的实例; 如果没有static; 当一个实例修改类里面的变量的时候,堆内存里面的类也会跟着改变; 现实中你修改了身高,难道新生人类的身高会直接变成一米八大个吗? 所以为了解决这一逻辑上的漏洞,有了static; 有static修饰的方法或变量属于类的本身,被称为类方法,类变量; 没有static修饰的则属于实例; 那么如果让你定义一个人类; 你就应该思考什么是属于人类,什么是属于个体本身的特性; 像身高这个特性应该属于个体;而身高的极限可以属于人类(你总不能长到20米吧); 那编写代码的时候需要注意的就是有static修饰的,经过实例重新定义的时候; 在堆内存里面的类本身就会改变,因为有static修饰的属于类的本身; 没有static修饰的就不变; 所以你写代码的时候该注意了,可能新建的实例中; 有些变量其实已经被上一个实例重新定义,而你还以为他还是原来的那个类;
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:01:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |