我得到了这段代码:
//Class X is created, and then class Y is derived from class X:
class X
{
protected int m;
}
class Y extends X
{
private int n;
public Y (int m, int n)
{
this.m = m;
this.n = n;
}
public String toString ()
{
return m + ", " + n;
}
}
//Class Y is used in the following way:
class UseY
{
public static void main (String[] args)
{
Y y = new Y (3, 4);
System.out.println (y);
}
}
正如您所看到的,代码涉及继承。
我被问到:
执行程序UseY时会创建哪个输出?对象y中存在哪些变量?
我的回答:
输出为: 3,4。 对象y中的变量是m和n。
但我不确定我的第二个答案。他们对变量的确切含义是什么?我的回答是否正确?
答案 0 :(得分:1)
我会说:
对象 y 有一个名为 n 的嵌套成员,以及来自其超类的派生成员,名为 m 。
答案 1 :(得分:0)
您对第一个问题的回答是正确的。
它们对变量的准确含义是什么?
这tutorial page解释了变量的确切含义。
Java编程语言定义了以下几种变量:
实例变量(非静态字段)从技术上讲,对象将其各个状态存储在“非静态字段”中,即不使用static关键字声明的字段。非静态字段也称为实例变量,因为它们的值对于类的每个实例是唯一的(换句话说,对于每个对象);一辆自行车的currentSpeed独立于另一辆自行车的当前速度。
类变量(静态字段)类变量是使用static修饰符声明的任何字段;这告诉编译器这个变量只有一个副本存在,无论该类被实例化多少次。定义特定类型自行车的齿轮数量的区域可以标记为静态,因为从概念上讲,相同数量的齿轮将适用于所有实例。代码static int numGears = 6;会创建这样一个静态字段。此外,可以添加关键字final以表示齿轮的数量永远不会改变。
局部变量类似于对象如何在字段中存储其状态,方法通常会将其临时状态存储在局部变量中。声明局部变量的语法类似于声明字段(例如,int count = 0;)。没有特殊的关键字将变量指定为本地变量;该决定完全来自声明变量的位置 - 它位于方法的开始和结束括号之间。因此,局部变量只对声明它们的方法可见;他们无法从班上其他人那里获得。
- 醇>
参数您已经在Bicycle类和“Hello World!”的main方法中看到了参数示例。应用。回想一下main方法的签名是public static void main(String [] args)。这里,args变量是此方法的参数。要记住的重要一点是参数总是被分类为“变量”而不是“字段”。这也适用于其他参数接受构造(例如构造函数和异常处理程序),您将在本教程的后面部分了解这些构造。
在这种情况下,存在的变量是实例字段n
和m
(上面的类型1)。 Y
类型的对象已在其类中定义n
。由于它扩展了X
,因此它也继承了类成员字段m
。子类继承其父级的所有 public 和 protected 成员。因此,Y
类型的对象中存在的变量是成员m
和n
。
答案 2 :(得分:0)
Y类型的对象y包含两个变量;一个int“m”和一个int“n” 输出:3,4