“类别”一词来自“分类”(将类别放入其中的“类别”),现在我们都听说“类别”就像一张蓝图,但这到底是什么意思?这意味着该类具有特定类别的描述,(我想用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
因此,特定对象可以是特定类的实例,但不必是该给定类的对象
结论:
如果对象满足特定类别的所有特征,则称该对象为该特定类别的实例。
现实世界的例子如下,我们最初是人类,因此将我们形象化为人类的对象,现在,当我们长大后,我们承担起责任,学习新技能,并在生活中扮演不同的角色。 ,母亲现在我们到底是什么?我们可以说我们是人类的对象,但兄弟,女儿等的实例
我希望这有帮助
谢谢