类,实例,对象,生成对象,实例化对象的区别(精讲)

在面向对象程序设计中,"类"在实例化之后叫做一个"实例"。 "类"是静态的,不占进程内存,而"实例"拥有动态内存。

实例(instance)和对象(object)的区别:

  • 对象就是类的实例,所有的对象都是类的实例,但并不是所有的实例都是对象。
  • 抽象类被定义为永远不会也不能被实例化为具体的对象。

凡是类生成的对象,分为(引用,无动态内存分配;非引用,有动态内存分配):

  1. 抽象类生成的对象,不是实例化对象,只是生成对象。此时可以说"生成对象"(无动态内存分配),但是不能说生成"实例化对象"。
  2. 就自定义的类而言(非抽象类)生成的对象,有实例化对象(有动态内存分配),也有生成对象(无动态内存分配)。此时可以说"实例化对象"(动态内存分配),"生成对象"(无动态内存分配)。


总结简记:没有分配内存的都是生成对象,分配内存的都是实例化对象。

package test;
abstract class AbstractInstanceAndObject {
}
public class InstanceAndObject {

public static void main(String[] args) {

AbstractInstanceAndObject abstractInstanceAndObject = null;

InstanceAndObject object = null;


扫描二维码关注公众号,回复: 1024333 查看本文章

Integer integer = new Integer(10);

InstanceAndObject example = new InstanceAndObject();


System.out.println("\n\tAbstractInstanceAndObject生成对象\n");

System.out.println(abstractInstanceAndObject instanceof Object);

System.out.println(abstractInstanceAndObject instanceof AbstractInstanceAndObject);

System.out.println(abstractInstanceAndObject);


System.out.println("\tInstanceAndObject生成对象\n");

System.out.println(object instanceof Object);

System.out.println(object instanceof InstanceAndObject);

System.out.println(object);


System.out.println("\tInteger实例化对象\n");

System.out.println(integer instanceof Object);

System.out.println(integer instanceof Integer);

System.out.println(integer.hashCode());

System.out.println(integer);


System.out.println("\tInstanceAndObject实例化对象\n");

System.out.println(example instanceof Object);

System.out.println(example instanceof InstanceAndObject);

System.out.println(example.hashCode());

System.out.println(example);

}

}


猜你喜欢

转载自blog.csdn.net/jake_aaron/article/details/79279804
今日推荐