java 没有引用的对象_Java自学-类和对象 引用

什么是Java中的引用?

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

步骤 1 : 引用和指向

new Hero();

代表创建了一个Hero对象 但是也仅仅是创建了一个对象,没有办法访问它 为了访问这个对象,会使用引用来代表这个对象 Hero h = new Hero();

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

public class Hero {

String name; //姓名

float hp; //血量

float armor; //护甲

int moveSpeed; //移动速度

public static void main(String[] args) {

//创建一个对象

new Hero();

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

Hero h = new Hero();

}

}

步骤 2 : 多个引用,一个对象

引用有多个,但是对象只有一个。 在这个例子里,所有引用都指向了同一个对象。 对象就像 "房产", 引用就像"房产证" 房产证的复印件可以有多张,但是真正的"房产" 只有这么一处

public class Hero {

String name; //姓名

float hp; //血量

float armor; //护甲

int moveSpeed; //移动速度

public static void main(String[] args) {

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

Hero h1 = new Hero();

Hero h2 = h1; //h2指向h1所指向的对象

Hero h3 = h1;

Hero h4 = h1;

Hero h5 = h4;

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

}

}

步骤 3 : 一个引用,多个对象

第8行,引用garen指向新创建的对象(对象1) 第9行,同一个引用garen指向新创建的对象(对象2) 这个时候,对象1,就没有任何引用指向了 换句话说,就没有任何手段控制和访问该对象,那么该对象就变得没有意义。

package charactor;

public class Hero {

public String name;

protected float hp;

public static void main(String[] args) {

Hero garen = new Hero();

garen = new Hero();

}

}

练习: 引用

(如代码,问题: h4所指向的对象和h2所指向的对象,是否是同一个对象?)

package charactor;

public class Hero {

public String name;

protected float hp;

public static void main(String[] args) {

Hero h1 = new Hero();

Hero h2 = new Hero();

Hero h3;

Hero h4;

h3 = h1;

h4 = h3;

}

}

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值