Слово класса происходит от классификации ( A Категория , в которую кладется что - то ), теперь мы все слышали , что класс подобен Blueprint, но что это означает в точности? Это означает, что класс содержит описание определенной категории ( я хотел бы показать разницу между классом, объектом и экземпляром на примере с использованием Java, и я бы попросил читателей визуализировать его как рассказ во время чтения, и если вы не знакомы с java, не имеет значения ) Итак, давайте начнем с создания Category под названием 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*/
}
Теперь у каждой категории есть поведение, например, у категории « Собака» есть поведение: лаять, приносить, катиться и т. Д.. Точно так же наша категория 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);
}
}
Теперь в приведенном выше примере мы создали нашего первого человека с именем возраст, рост, вес, так что же именно происходит в приведенном выше коде? . Мы создаем экземпляр нашей категории HumanBeing, т.е. создается объект нашего класса.
Примечание: объект и экземпляр не являются синонимами. В некоторых случаях кажется, что объект и экземпляр являются синонимами, но это не так, я приведу оба случая.
Случай 1: объект и экземпляр кажутся синонимами
Позвольте мне немного уточнить, когда мы говорим, что HumanBeing firstHuman = new HumanBeing("Adam",25,6.2,90);
объект нашей категории создается в памяти кучи, и ему выделяется некоторый адрес, и он firstHuman
содержит ссылку на этот адрес, теперь этот объект Объект HumanBeing, а также экземпляр HumanBeing . Здесь кажется, что Объекты и Экземпляр - это синонимы, повторюсь, они не синонимы
Давайте продолжим нашу историю, мы создали нашего первого человека, теперь мы можем спросить его имя, возраст, рост, вес, вот как мы это делаем в 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());
...
...
}
}
Итак, у нас есть первый человек, и давайте переместим перо, дав нашему первому человеку некоторую квалификацию, давайте сделаем его Доктором, поэтому нам нужна категория под названием Доктор и дадим нашему Доктору какое-то поведение, поэтому в 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*/
}
}
Здесь мы использовали концепцию наследования, которая привносит некоторую возможность повторного использования в коде, каждый доктор всегда будет первым человеком, поэтому у доктора будут имя, возраст, вес, рост, которые будут унаследованы от 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 , поскольку мы уже знаем, что объекты создаются в куче памяти и firstDoctor
содержит ссылку на этот объект в куче;
Этот конкретный объект firstDoctor
выглядит следующим образом (обратите внимание, что firstDoctor
содержит ссылку на объект, а не сам объект)
firstDoctor
является объектомclass Doctor
и экземпляром Aclass Doctor
firstDoctor
это не объектclass HumanBeing
Но Экземплярclass HumanBeing
Таким образом, конкретный объект может быть экземпляром определенного класса, но он не обязательно должен быть объектом данного класса.
Заключение:
Объект называется экземпляром определенной категории, если он удовлетворяет всем характеристикам этой конкретной категории.
Пример из реального мира будет следующим: мы вначале рождаемся как люди, поэтому представляем нас как объект человека, теперь, когда мы вырастаем, мы берем на себя ответственность, изучаем новые навыки и играем разные роли в жизни. Пример Сын, брат, дочь, отец. , теперь мама Что мы на самом деле? Мы можем сказать, что мы объекты человека, но экземпляры брата, дочери и т. д.
надеюсь, это поможет
Благодарю вас