我正在研究的一个来源将数组定义为“一个名称下的变量集合,其中变量通过索引号访问。”
但后来我意识到你可以拥有一个对象数组(或者至少是一个指向对象的数组)。
这让我想知道在java中定义了什么变量,因为我没有将对象视为变量。 Jenkov Tutorials将变量称为“一块可以包含数据值的内存”。
既然我认为一个对象符合这个定义,那么一个对象被认为是变量吗?
答案 0 :(得分:2)
调用数组a"变量集合"可以说已经扩展了这个定义。但是数组肯定是一组引用,可以指向内存中的不同对象,并且每个这样的引用可以合理地称为变量。
要求"是一个变量对象"首先是有点奇怪。在Object o = new Object()
中,o
显然是一个变量,但要记住它是对堆中对象的引用,而不是对象本身。
老实说,"变量"是一个非常灵活,定义不明确的术语 - 字段是变量吗?方法的返回结果?这取决于他们的谈话以及他们今天使用的模糊定义。
答案 1 :(得分:1)
是一个被认为是变量的对象?
不,这是两件截然不同的事
第一个(对象)是值,第二个(变量)是引用对象的一种方式,通常是使用它(例如,在它上面调用一系列方法)。
例如,当你写:
new Dog()
您实例化Dog
。尼斯。但是假设你想在饥饿时喂它
如果你没有办法在这个对象上链接一系列方法,你就不能。
通过将Dog
的引用存储在dog
变量中,您可以执行此操作:
Dog dog = new Dog();
if (dog.isHungry()){
dog.feed();
}
Jenkov Tutorials引用一个变量作为“一块记忆 可以包含数据值。“
它说同样的事情。
但是这个:
我正在研究的一个来源将一个数组定义为“一个集合 一个名称下的变量,其中变量通过索引访问 数字“。
颇具误导性
数组是一个对象,其状态包含数组的元素等
引用元素的方式是Array类的实现细节,我不会确认每个元素都存储在特定变量中。
答案 2 :(得分:0)
使用保留字new
调用构造函数时,会创建一个对象。
例如:
Object a = new Object();
a
将是创建的新对象的变量,并将转到该对象的保留内存。您正在实例化该新变量,并且该变量与该对象相关联。
答案 3 :(得分:-1)
Hope might this will help you to understand it better...
class Bulb
{
private int w;
public void setWattage(int e)
{
w=e;
}
public int getWattage()
{
return w;
}
}
class Test
{
public static void main(String args[])
{
Bulb b[];
b=new Bulb[2];
b[0]=new Bulb();
b[1]=new Bulb();
b[0].setWattage(60);
b[1].setWattage(100);
System.out.println(b[0].getWattage());
}
}
这里b [0]和b [1]是具有两个Bulb对象地址的引用变量