Java教程

java面向对象-类与对象的关系

本文主要是介绍java面向对象-类与对象的关系,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java面向对象-类与对象的关系


  • 类是一种抽象的数据类型,它是对某一事物整体描述/定义,但是并不能代表某一个具体的事物,是一个模板
  • 如Person类、Pet类、Car类…Pet类里面有猫狗,Car类里面有轿车,货车,这些类都是用来描述/定义某一类具体的事物应该具备的特点(属性)和行为(方法)

对象

  • 对象是抽象概念的具体实例
  • 张三就是人的一个具体实例,张 三家里的旺财就是狗的一个具体实例
  • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

创建与初始化对象

  • 使用new关键字创建对象
  • 使用new关键字创建对象时,除了分配内存空间之外,还会给 创建好的对象 进行 默认的初始化以及对 类中构造器的调用

构造方法

  • 类中的构造器也被称为 构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
    1.必须和类的名字相同
    2.必须没有返回类型,也不能写void
    3.一旦定义了有参构造,无参构造就必须显示定义

  • 一个类即使什么都不写,它也会存在一个构造方法

作用:

  • 可以实例化初始值
  • 使用new关键字时,本质是在调用构造器
  • 构造器一般用来初始化实例变量
  • 换句话说:构造方法就是用来创建对象的,并且同时给对象的属性赋值(注意:当实例变量没有手动赋值时,系统会赋默认值)

创建对象内存分析

在这里插入图片描述在这里插入图片描述
解析:

  • 首先类是最先被加载出来的,所以Student、StudentTest类都放在方法区,方法区也在堆里;
  • 首先我们要知道s1这个变量它是局部变量,因为在方法里的变量都叫局部变量,变量s1又是通过main方法来创建的,main方法又在栈中,栈中主要存储局部变量,而方法所需要的内存都是在栈中分配的,所以Student对象是通过栈来分配空间的,并且有个内存地址:0*1234;我们可以通过引用变量名s1来找到并引用这个空间。
  • 从上图可以看出,我们在main方法中实例化了一个Student对象 :Student s1 = new Studnet(); new运算符的作用就是在堆内存中开辟一块空间,那么通过new创建出来的对象都在堆内存中,堆内存中存储对象及对象的实例变量(成员变量),所以s1这个对象就在堆内存中,并且有个地址:0*1234;

引用与对象的区别
-对象是通过new出来的,在堆内存中存储,对象是通过引用来操作的
引用是:但凡是变量名,并且该变量名中保存了内存地址指向了堆内存当中的对象的

这篇关于java面向对象-类与对象的关系的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!