例子问题
例子问题1:面向对象程序设计
使用静态变量
考虑以下Java代码:
公共类员工
{
静态int nextID = 1;
字符串名称;
int employeeID;
员工(String n) {
name = n;
employeeID = nextID;
nextID + +;
}
公共字符串getName () {
返回名称;
}
公共int getID () {
返回employeeID;
}
public static void main(字符串[]参数)
{
雇员emp3 =新雇员(“Kate”);
雇员emp1 =新雇员("John");
雇员emp2 =新雇员(“Sandy”);
System.out.println(emp1.getName() + " ID: " + emp1.getID());
System.out.println(emp3.getName() + " ID: " + emp3.getID());
}
}
控制台的输出是什么?
约翰ID: 1
桑迪ID: 2
约翰ID: 2
凯特ID: 1
约翰ID: 1
凯特ID: 2
约翰ID: 1
桑迪ID: 1
约翰ID: 2
凯特ID: 1
静态变量与类关联,而不是与该特定类的对象关联。由于我们使用的是静态类变量“nextID”,并在创建新员工时将其赋值给employeeID,然后增加它,因此为整个类更新类变量。
在我们的代码中,我们首先创建了emp3。这意味着创建Kate时使用的employeeID等于nextID的当前值(在本例中为1)。之后,nextID值加1。下一个emp1是用John的名字和一个等于nextID当前值的employeeID创建的(由于创建Kate时增加了值,所以变成了2)。最后,用Sandy的名称和等于nextID当前值(在代码中此时)的employeeID创建emp2。这意味着Sandy的employeID值为3。
因此在第一个系统中。当我们打印emp1时,我们得到:约翰ID: 2
在第二个系统中。当我们打印emp3时,我们得到:
凯特ID: 1
例子问题1:面向对象程序设计
下面代码片段中的类Car和类TwoDoor之间的关系是什么?
class TwoDoor扩展Car {
}
TwoDoor实现汽车
Car是TwoDoor的超类
汽车实现TwoDoor
TwoDoor是Car的超类
Car是TwoDoor的超类
Car是TwoDoor的超类。因为TwoDoor类扩展了Car类,所以TwoDoor可以通过调用super来使用Car中的方法和变量。
提到实现的答案是不正确的,因为实现引用接口。对于TwoDoor实现car,代码看起来像这样:
类TwoDoor实现Car {
}