文章标题

实例化对象的理解

什么是实例化对象 为什么要实例化对象

”一个类的实例” 和 ”一个类的对象” 是说的一个意思

类好比一个模具,对象就是用这个模具造出来的具有相同属性和方法的具体事物,俗话说:“他俩真像,好像一个模子刻出来的”,就是指的这个意思。
a instance of A
这行语句是一个布尔表达式,即它的返回值是一个布尔值,即真或假,
那么这句话是判断什么的真或者假呢?首先你要知道instance of是一个关键字,也就是这个词组在java源代码中具有特殊的含义的词语,这个词组的左边放一个对象,在这里是a,这个词组的右边放一个类,这里是A(注意java中区分大小写,a和A不是一个东西),所以
a instance of A
这条语句通俗的说就是:“a这个东西是否是A这个模具刻出来的”,用OOP(面向对象程序设计)的话来说就是:“对象a是否是A类的一个实例”

你的问题如果要没有歧义的问就应该是:“对象a是否是类A的实例”,而不是“对象a是否是A的一个对象”

再打个比方说一下类和对象吧:类就是你想象当中的若干个事物的一个种类,比如飞碟,但是如果你定义了一个飞碟类UFO以后,就有飞碟了吗?答案是,没有,因为它只是一个模具,当我们想象有飞碟这种东西时,我们还没有发现任何飞碟的实物。这就是类。
假设有一天,天空真的出现了几个飞碟,从东边飞来了一个蓝色的盘状飞碟,比如代号叫b101;从西边飞来了一个红色的球状飞碟,代号叫r102;从南边飞来了一个绿色的条形飞碟,代号叫g103;那么我们就可以说:对象b101,a102,g103都是飞碟类的实例,所以表达式
b101 instance of UFO
的返回值就是真,在java中的表达就是true
那么飞机,假设有一架飞机我们叫他空军一号aan1,则表达式
aan1 instance of UFO
的返回值就是假,在java中的表达就是false

事实上instance of关键字是不建议使用的,因为它的使用一般意味着该软件的框架非常之巨大,其中包含的抽象类和借口巨多,导致有时需要进行这样的判断,一个设计得非常健壮,逻辑紧凑的软件是不应该有这样的表达式的。

明白了吗?

补充:
你补充的这个问题,就是问equals函数的作用
equals的英语意思就是等于,在这里作为一个函数的名称,同时这个函数只有对象才能调用,这里你还要知道引用和对象的区别。
Student stu1 = new Student();
Student stu2 = stu1;
Student stu3 = new Student();
问题:这里有几个类?几个对象?几个引用?
答案是:一个类,两个对象,三个引用。
不要以为stu1和stu2不是同一个东西,在这里,他们是同一个,所以stu1.equals(stu2)的值就是true(真),而stu1.equals(stu3)的值就是false
注意需要与instance of区别,instance of是判断一个引用指向的对象是否是一个类的实例,而equals是判断一个引用和另一个引用是否是同一个对象。
再用个通俗的例子给你说说吧:
我有两个女同学,一个叫小芳,一个叫小雪,女同学是一个类,其中小芳也是我的女朋友,女朋友也是一个类,这个类继承自女同学类,那么就有
class ClassMate{ //女同学类
}
class GirlFriend extends ClassMate{//女朋友类
}
class Demo{//测试类
public void main(String[] args){
ClassMate xue = new ClassMate();//同学小雪
GirlFriend fang = new GirlFriend();//女朋友小芳
ClassMate fang2 = fang;//同学小芳
}
}
则有
(xue instance of ClassMate)==true//小雪是同学
(fang instance of ClassMate)==true//小芳是同学
(xue instance of GirlFriend)==false//小雪不是女朋友
(fang instance of GirlFriend)==ture//小芳是女朋友
—-同时—-
xue.equals(fang)==false//同学小雪不是女朋友小芳
xue.equals(fang2)==false//同学小雪不是同学小芳
fang.equals(fang2)=true//同学小芳就是女朋友小芳

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值