AP计算机科学A:班级关系

学习AP计算机科学A的概念,示例问题和解释

大学导师应用商店 大学导师安卓商店

例子问题

例子问题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 {

大学导师的学习工具