0
点赞
收藏
分享

微信扫一扫

Java知识系统回顾整理01基础07类和对象01引用

一、引用的定义

引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。

   

二、引用和指向

new Hero();

代表创建了一个Hero对象

但是也仅仅是创建了一个对象,没有办法访问它

为了访问这个对象,会使用引用代表这个对象

Hero h = new Hero();

  • h这个变量是Hero类型,又叫做引用
  • =的意思指的h这个引用代表右侧创建的对象
  • "代表" 在面向对象里,又叫做"指向"

Java知识系统回顾整理01基础07类和对象01引用_h5

   

public class Hero {

       

//姓名    

float//血量      

float//护甲     

int//移动速度
      

public staticvoid main(String[] args) {

//创建一个对象

new Hero();        

//使用一个引用来指向这个对象

new Hero();     

    }     

}

   

三、多个引用,一个对象

引用有多个,但是对象只有一个。

在这个例子里,所有引用都指向了同一个对象。

对象就像 "房产", 引用就像"房产证"

房产证的复印件可以有多张,但是真正的"房产" 只有这么一处

Java知识系统回顾整理01基础07类和对象01引用_面向对象_02

   

public class Hero {

       

//姓名

       

float//血量

       

float//护甲

       

int//移动速度

       

public staticvoid main(String[] args) {

          

//使用一个引用来指向这个对象

new Hero();

//h2指向h1所指向的对象

        Hero h3 = h1;

        Hero h4 = h1;

        Hero h5 = h4;

          

//h1,h2,h3,h4,h5 五个引用,都指向同一个对象        

    }        

}

   

四、一个引用,多个对象

第8行,引用garen指向新创建的对象(对象1)

第9行,同一个引用garen指向新创建的对象(对象2)

这个时候,对象1,就没有任何引用指向了

换句话说,就没有任何手段控制和访问该对象,那么该对象就变得没有意义。

   

Java知识系统回顾整理01基础07类和对象01引用_h5_03

   

Java知识系统回顾整理01基础07类和对象01引用_h5_04

   

五、练习--引用

题目:

如下代码

package charactor;

   

public class Hero {

    public String name;

    protectedfloat hp;

   

    public staticvoid main(String[] args) {

          new Hero();

          new Hero();

           Hero h3;

           Hero h4;

           h3 = h1;

           h4 = h3;

    }

}

问题:

h4所指向的对象和h2所指向的对象,是否是同一个对象?

   

官方解答:

如果所示,h4指向h3,最终间接地指向了对象1

而h2指向的是对象2,所以h4和h2不是指向同一个对象

Java知识系统回顾整理01基础07类和对象01引用_h5_05

   

   

 



举报

相关推荐

0 条评论