java 对象和实例有什么区别_对象和实例之间的区别

“ 类别”一词来自“ 分类”(将类别放入其中的“ 类别”),现在我们都听说“ 类别”就像一个蓝图,但这到底是什么意思?这意味着该类具有特定类别的描述,(我想用Java来举例说明类,对象和实例之间的区别,并且我会要求读者在阅读它时像一个故事一样对其进行可视化,如果您不熟悉Java没关系)因此让我们首先创建一个名为HumanBeing的类别,这样Java程序将如下表示。

class HumanBeing{

/*We will slowly build this category*/

}

现在,HumanBeing一般具有名称,年龄,身高,体重的哪些属性,现在让我们将自身限制为这四个属性,然后将其添加到类别中

class HumanBeing{

private String Name;

private int Age;

private float Height;

private float Weight;

/*We still need to add methods*/

}

现在,每个类别都有一个行为,例如类别Dog的行为是吠叫,抓取,滚动等。类似地,我们的类别HumanBeing也可以具有某些行为,例如,当我们问问HumanBeing时,您的名字/年龄/体重/高度?它应该给我们它的名字/年龄/体重/身高,所以在java中我们这样做

class HumanBeing{

private String Name;

private int Age;

private float Height;

private float Weight;

public HumanBeing(String Name,int Age,float Height,float Weight){

this.Name = Name;

this.Age  = Age;

this.Height = Height;

this.Weight = Weight;

}

public String getName(){

return this.Name;

}

public int getAge(){

return this.age;

}

public float getHeight(){

return this.Height;

}

public float getWeight(){

return this.Weight;

}

}

现在,我们将行为添加到了HumanBeing类别中,因此我们可以询问其名称,年龄,身高,体重,但是您可以从谁那里询问这些详细信息,因为class HumanBeing这只是一个类别,它是一个蓝图,例如,建筑师为他要建造的建筑物的文件,现在我们不能继续在蓝图(对建筑物的描述)中居住,我们只能在建筑物建成后居住在建筑物中,所以在这里我们需要从我们的类别中创建人类上面已经描述过了,那么我们该如何在Java中做到这一点呢?

class Birth{

public static void main(String [] args){

HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);

}

}

现在,在上面的示例中,我们创建了第一个名称为age height weight的人,那么上面的代码中到底发生了什么?。我们正在实例化类别HumanBeing,即创建了该类的对象

注意: 对象和实例不是同义词在某些情况下,似乎对象和实例是同义词,但它们不是同义词,我会给出两种情况

情况1:对象和实例似乎是同义词。

让我详细说明一下,当我们说在堆内存上创建了该类别HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90); 的对象并为其分配了一些地址,并持有对该地址的引用时,现在该对象为人的对象也是人的实例。在这里,似乎对象和实例是同义词,我再说一遍,它们不是同义词firstHuman

让我们恢复我们的故事,我们创建了第一个人类,现在我们可以问他的名字,年龄,身高,体重,这就是我们在Java中的做法

class Birth{

public static void main(String [] args){

HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);

System.out.println(firstHuman.getName());

System.out.println(firstHuman.getAge());

...

...

}

}

因此,我们拥有第一个人类,并通过赋予我们的第一个人类一定的资格来让自己动弹,让我们让他成为医生,因此我们需要一个名为Doctor的类别并赋予Doctor一些行为,因此在Java中,我们可以这样做

class Doctor extends HumanBeing{

public Doctor(String Name,int Age,float Height,float Weight){

super(Name,Age,Height,Weight);

}

public void doOperation(){

/* Do some Operation*/

}

public void doConsultation(){

/* Do so Consultation*/

}

}

在这里,我们使用了继承的概念,它在代码中带来了一定的可重用性,每个Doctor永远都是HumanBeing的第一人,因此Doctor的Name,Age,Weight,Height将从HumanBeing继承而来,而无需再次编写,请注意,我们只是写了一份尚未创建医生的说明,所以让我们在我们的医生中创建一名医生。class Birth

class Birth{

public static void main(String [] args){

Doctor firstDoctor = new Doctor("Strange",40,6,80);

.......

.......

/*Assume some method calls , use of behaviour*/

.......

.......

}

}

情况2:对象和实例不是同义词

在上面的代码中,我们可以直观地看到我们正在实例化Doctor类并将其变为现实,即我们只是创建了Doctor类的Object,因为我们已经知道Object是在堆内存上创建的并firstDoctor在堆上保存对该Object的引用;

这个特定的对象firstDoctor如下(请注意firstDoctor,它持有对该对象的引用,它不是对象本身)

firstDoctor是A的对象class Doctor和A的实例class Doctor

firstDoctor是不是一个对象class HumanBeing,但实例class HumanBeing

因此,特定对象可以是特定类的实例,但不必是该给定类的对象

结论:

如果对象满足特定类别的所有特征,则称该对象为该特定类别的实例。

现实世界的例子如下,我们最初是人类,因此将我们形象化为人类的对象,现在,当我们长大后,我们承担起责任,学习新技能,并在人生中扮演不同的角色。儿子,兄弟,女儿,父亲,母亲现在我们到底是什么?我们可以说我们是人类的对象,但兄弟,女儿等的实例

我希望这有帮助

谢谢

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值