类的实例和对象之间的基本区别是什么?我总是对它们到底有什么不同感到困惑。
7 回答
实例是内存中的对象。基本上,您在使用它们时创建对象并实例化它们。
这是一篇关于 Classes Vs Objects Vs Instances 的好文章,他说的是 Java,但它适用于所有面向对象的编程: Class vs Object vs Instance
“人”和“你”有什么区别?“人”是一类(人有很多),而“你”只是一个类(你是人的对象)。什么是实例?有一些函数不仅适用于对象,也适用于类。示例:human::isMammal() == true,human::isArachnid() == false。您不需要人类类的对象来调用此类函数(因为这些函数不使用对象的任何特殊属性:所有人类都是哺乳动物而不是蛛形纲动物),因此使用实例就足够了。
简单来说,
Object 是类的一个实例。
当人们谈论对象时,它更特定于特定实例(类中变量中的值)。我希望,我至少没有让你感到困惑。
我认为大多数程序员会交替使用“对象”和“实例”。一些学究可能会试图做出区分,但如果这些区分不被大多数术语使用者所认可,那么这种区分是没有意义的。
当然,“类”是对象的一种模板或设计。
对象是某事物的定义,而实例是该事物的表现形式。例如,根据定义,一把椅子有一个座位、3 条或更多条腿和一个靠背。这将是对象。请注意,我们只有一个定义,而不是一个对象本身。现在,如果我们创建一把椅子,我们就有了一个实例。
在大多数语言中,new 运算符是创建实例的方式......
Chair c = new Chair();
还有其他方法。在这种情况下,Chair 是对象,c 是实例。我们也可以轻松地创建对对象定义没有影响的额外椅子。
实例是对象的特定实现。当应用程序运行时,实际上该程序的一个实例会运行,例如,如果我们有一个汽车对象,bmw 可以是该程序的一个实例
类文件源代码定义了对象。要在其他代码中使用该对象,请创建它的一个实例:
对象定义:
public class Person {
String mName;
public Person(){}
public Person(String name){
mName=name;
}
public void setName(String name){
mName=name;
}
public String getName(){
return mName;
}
}
对象使用(实例):
Person me=new Person("John Doe");
//me is an instance of the person object;
Person you=new Person("John Smith");
Person spouse=new Person("Jane Doe");
//lots of instances but only one Person Object
String myName=me.getName();
接下来阅读静态对象:)