本文主要是介绍java面向对象-类与对象的关系,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java面向对象-类与对象的关系
类
- 类是一种抽象的数据类型,它是对某一事物整体描述/定义,但是并不能代表某一个具体的事物,是一个模板
- 如Person类、Pet类、Car类…Pet类里面有猫狗,Car类里面有轿车,货车,这些类都是用来描述/定义某一类具体的事物应该具备的特点(属性)和行为(方法)
对象
- 对象是抽象概念的具体实例
- 张三就是人的一个具体实例,张 三家里的旺财就是狗的一个具体实例
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念
创建与初始化对象
- 使用new关键字创建对象
- 使用new关键字创建对象时,除了分配内存空间之外,还会给 创建好的对象 进行 默认的初始化以及对 类中构造器的调用
构造方法
作用:
- 可以实例化初始值
- 使用new关键字时,本质是在调用构造器
- 构造器一般用来初始化实例变量
- 换句话说:构造方法就是用来创建对象的,并且同时给对象的属性赋值(注意:当实例变量没有手动赋值时,系统会赋默认值)
创建对象内存分析
解析:
- 首先类是最先被加载出来的,所以Student、StudentTest类都放在方法区,方法区也在堆里;
- 首先我们要知道s1这个变量它是局部变量,因为在方法里的变量都叫局部变量,变量s1又是通过main方法来创建的,main方法又在栈中,栈中主要存储局部变量,而方法所需要的内存都是在栈中分配的,所以Student对象是通过栈来分配空间的,并且有个内存地址:0*1234;我们可以通过引用变量名s1来找到并引用这个空间。
- 从上图可以看出,我们在main方法中实例化了一个Student对象 :Student s1 = new Studnet(); new运算符的作用就是在堆内存中开辟一块空间,那么通过new创建出来的对象都在堆内存中,堆内存中存储对象及对象的实例变量(成员变量),所以s1这个对象就在堆内存中,并且有个地址:0*1234;
引用与对象的区别
-对象是通过new出来的,在堆内存中存储,对象是通过引用来操作的
引用是:但凡是变量名,并且该变量名中保存了内存地址指向了堆内存当中的对象的
这篇关于java面向对象-类与对象的关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!