对象,实例和引用有什么区别?他们说他们必须为他们的应用程序创建一个实例?这是什么意思?
答案 0 :(得分:69)
对象和实例是相同的东西。
我个人更喜欢在引用特定类型的特定对象时使用“实例”一词,例如“Foo类型的实例”。但是在谈论一般的对象时,我会说“对象”而不是“实例”。
引用既可以引用特定对象,也可以是空引用。
他们说他们必须为他们的应用程序创建一个实例。这是什么意思?
他们可能意味着你必须写下这样的东西:
Foo foo = new Foo();
如果您不确定应该实例化哪种类型,请联系应用程序的开发人员并要求提供更完整的示例。
答案 1 :(得分:11)
“应用程序的实例”意味着什么。
“对象”和“实例”是一回事。有一个“类”定义结构,以及该类的实例(使用new ClassName()
获得)。例如,有Car
类,并且有不同属性的实例,如里程数,最大速度,马力,品牌等。
在Java上下文中,引用是一个变量* - 它指向一个对象/实例。例如,String s = null;
- s
是一个引用,当前不引用任何实例,但可以引用String
类的实例。
* Jon Skeet记录了变量和引用之间的区别。看他的评论。当你调用一个方法 - 值传递时,Java是如何工作的一个重要区别。
s的值是参考。区分变量和值,对象和引用非常重要。
答案 2 :(得分:8)
我认为Object = Instance。 Reference是对象的“链接”。
Car c = new Car();
变量c存储对Car类型对象的引用。
答案 3 :(得分:7)
当您使用关键字new
例如JFrame j = new JFrame();
时,您正在创建类JFrame
的实例。
new
运算符实例化a 通过为新的内存分配内存 对象并返回引用 记忆。
注意:短语“实例化一个类”意味着同样的事情 “创造一个对象。”当你创建 一个物体,你正在创造一个 因此,一个类的“实例” “实例化”一个班级。
看看这里
Creating Objects
Java编程的类型 语言分为两个 类别:
primitive types
和reference
种类型reference
类型 是class
类型,interface
类型和array
种类型 还有一个特别的null
类型。
一个对象是 动态创建的实例class
类型或动态创建array
。
reference
的值 type是对象的引用。
有关详细信息,请参阅Types, Values, and Variables
答案 4 :(得分:5)
Computer c= new Computer()
这里的对象是从Computer
类创建的。名为c的引用允许程序员访问该对象。
答案 5 :(得分:4)
主要区别在于你说ClassName obj = null;你只是为那个类创建一个对象。它不是该类的实例。
此语句将仅为静态meber变量分配内存,而不是正常成员变量。
但是当你说ClassName obj = new ClassName();您正在创建该类的实例。这个staement将分配所有成员变量的内存。
答案 6 :(得分:3)
基本上对象和实例是可互换使用的两个单词。 类是对象的模板,对象是类的实例。
答案 7 :(得分:1)
“创建一个类的实例”怎么样,“你正在上一个类并根据改变的输入创建一个将改变的类的新变量”
库中名为Nacho的类
变量Libre来保存将要改变的“实例”
Nacho Libre =新的Nacho(变量,扫描仪输入,或其他任何东西,这是接受更改的地方然后将值放在等号左侧的“Libre”中(你知道“Nacho Libre =新的Nacho(Scanner.in)“”Nacho Libre“位于=的左边(这不是技术谈话,这是我解释它的方式)
我认为这比说“类型实例”或“类实例”更好。真正的重点是它只需要详细说明......“类型或类的实例”对于初学者来说还不够好.....哇,它就像绕口令而你的大脑不能专注于绕口令很好......那个“实例”这个词非常讨厌而且仅仅它的声音让我疯狂......它需要更多的细节......它需要更好地分解。我不得不谷歌什么“实例”只是为了让我的方向伸直.....试着对你的奶奶说“课堂实例”....哎呀!
答案 8 :(得分:1)
实例的字面含义是"某个例子或单个事件。"这与Java术语中的Instance非常接近。
Java遵循动态加载,这与C语言不同,在运行时将所有代码复制到RAM中。让我们举一个例子。
class A
{
int x=0;
public static void main(String [] args)
{
int y=0;
y=y+1;
x=x+1;
}
}
让我们编译并运行此代码。
步骤1:生成javac A.class(生成.class文件,即字节代码)
第2步:java A(.class文件转换为可执行代码)
在步骤2中,将main方法和静态元素加载到RAM中以便执行。在上面的场景中,直到第y = y + 1行才会出现问题。但是每当执行x = x + 1时,就会抛出运行时错误,因为 JVM不知道在主方法之外声明的是什么(非静态)。
因此,如果通过某种方式可以在内存中提供.class文件的内容以供CPU执行,那么就不会有更多问题。
这是通过创建对象完成的,关键字新执行此作业。
" 在运行时为RAM中的内存(此处为.class文件)保留内存的概念称为实例"
Object也称为类的实例。
答案 9 :(得分:0)
对象 ,也是 称为实例 ,是具有相关功能的程序的自包含元素和数据。在大多数情况下,您只使用该类创建实例,然后使用这些实例。
- 定义取自“Sams在21天内自学Java”一书。
假设您有2个类,公共类MainClass 和公共类Class_2 ,并且您希望在MainClass中创建 Class_2的实例。
这是一种非常简单和基本的方法:
public MainClass() /*******this is the constructor of MainClass*******/
{
Class_2 nameyouwant = new Class_2();
}
我希望这有帮助!