Java面向对象程序设计第三版课后习题答案 第四章(超星作业,部分课后)
测试4
1【单选题】
下列哪个叙述是正确的?
我的答案:D
2【单选题】
对于下列Dog类,哪个叙述是错误的?
class Dog {
Dog(int m){
}
Dog(double m){
}
int Dog(int m){
return 23;
}
void Dog(double m){
}
}
- A、
- B、
- C、
- D、
我的答案:D
3【单选题】
对于下列Tom类,哪个叙述是正确的?
public class Test {
public static void main(String args[]){
Tom cat = new Tom();
}
}
class Tom {
void Tom(){
System.out.println("ok");
}
Tom(int m){
System.out.println("你好");
}
}
我的答案:C
4【单选题】
下列哪个叙述是正确的?
- A、
- B、
- C、
- D、
我的答案:D
5【单选题】
当用new运算符和构造方法创建对象时,下列哪个步骤的叙述是正确的?
- A、
- B、
- C、
- D、
我的答案:A
6【单选题】
下列【1】、【2】、【3】、【4】注释标注的哪行代码有错误?
class Cat {
int leg;
static int water;
void setLeg(int leg) {
this.leg = leg; //【1】
this.water = 100; //【2】
}
static void setWater(int water) {
Cat.water = water; //【3】
leg = 4; //【4】
}
}
我的答案:D
7【单选题】
下列【1】、【2】、【3】、【4】注释标注的哪行代码有错误?
class A {
int f(int x,int y){
int x; //【1】
int m = y; //【2】
return m;
}
int A(int m) //【3】
{
return m;
}
} public class E {
public static void main(String args[]) {
A a = new A(); //【4】
}
}
我的答案:A
8【单选题】
下列【1】、【2】、【3】、【4】注释标注的哪行代码有错误?
class Tom {
int x;
static int y;
void showXY(){
System.out.printf("%d,%d\n",x,y);
}
static void showY() {
System.out.printf("%d\n",y);
}
}
public class E {
public static void main(String aqgs[]){
Tom.y = 100; //【1】
Tom cat = new Tom();
cat.x = 100;
cat.y = 200; //【2】
Tom.x = 300; //【3】
cat.showXY();
Tom.showY(); //【4】
}
}
我的答案:C
9【单选题】
下列【1】、【2】、【3】、【4】注释标注的哪行代码无编译错误,但运行时刻触发NullPointerException异常?
class Cat {
int leg;
static int water;
void setLeg(int leg) {
this.leg = leg; //【1】
this.water = 100; //【2】
}
static void setWater(int water) {
Cat.water = water; //【3】
}
}
public class E {
public static void main(String args[]) {
Cat cat = null;
cat.setLeg(4); //【4】
}
}
我的答案:D
10【单选题】
下列【1】、【2】、【3】、【4】注释标注的哪行代码有错误?
class E {
int x;
public void f(int n) {
int m; //【1】
int t = x+n; //【2】
int y = x+m; //【3】
m = 10;
y = x+m; //【4】
}
}
我的答案:C
11【填空题】
给出下列【代码】注释标注的代码的输出结果。
class Circle {
int radius = 1 ;
void setRadius(int radius){
if(radius>0)
this.radius = radius;
}
}
class Geometry {
Circle c;
void setCircle(Circle c) {
c.radius += 10;
this.c = c;
}
}
public class E {
public static void main(String args[]) {
Circle circle = new Circle();
circle.setRadius(10);
Geometry geometry = new Geometry();
geometry.setCircle(circle);
Circle circleTwo = new Circle();
geometry.setCircle(circleTwo);
System.out.printf("%d:%d",circle.radius,geometry.c.radius); //【代码】
}
}
我的答案:
第一空:
20:11
12【填空题】
给出下列【代码】注释标注的代码的输出结果。
class Circle {
int radius = 1 ;
void setRadius(int radius){
if(radius>0)
this.radius = radius;
}
}
class Geometry {
Circle c;
void setCircle(Circle c) {
c.radius += 10;
this.c = c;
}
}
public class E {
public static void main(String args[]) {
Circle circle = new Circle();
circle.setRadius(10);
Geometry geometry = new Geometry();
int r = circle.radius;
geometry.setCircle(circle);
System.out.printf("%d:%d:%d",r,geometry.c.radius,circle.radius); //【代码】
}
}
我的答案:
第一空:
10:20:20
13【填空题】
给出下列【代码】注释标注的代码的输出结果。
class B {
int x = 100,y = 200;
public void setX(int x) {
x = x;
}
public void setY(int y) {
this.y = y;
}
public int getXYSum() {
return x+y;
}
}
public class E {
public static void main(String args[]) {
B b = new B();
b.setX(-100);
b.setY(88);
System.out.printf("%d:%d:%d",b.x,b.y,b.getXYSum());
}
}
我的答案:
第一空:
100:88:188
14【填空题】
给出下列【代码】注释标注的代码的输出结果。
class Fish {
int weight = 1;
}
class Lake {
Fish fish;
void setFish(Fish s){
fish = s;
}
void foodFish(int m) {
fish.weight=fish.weight+m;
}
}
public class E {
public static void main(String args[]) {
Fish redFish = new Fish();
Lake lake = new Lake();
lake.setFish(redFish);
lake.foodFish(120);
System.out.printf("%d:%d",redFish.weight,lake.fish.weight); //【代码】
}
}
我的答案:
第一空:
121:121
15【填空题】
class Car {
int speed;
void upSpeed(int m){
if(m>0)
speed += m;
}
}
public class E {
public static void main(String args[]) {
Car carOne = new Car();
Car carTwo = new Car();
carOne.upSpeed(50);
carTwo.upSpeed(100);
System.out.printf("%d:%d",carOne.speed,carTwo.speed); //【代码】
}
}
我的答案:
第一空:
50:100
16【判断题】
方法中声明的局部变量不可以用访问修饰符:public,proteced,private修饰。
我的答案:√
17【判断题】
构造方法的访问权限可以是public,protected,private或友好的。
我的答案:√
18【判断题】
类中的重载方法的访问权限必须保持一致。比如,或者都是public方法,或者都是private方法。
我的答案:×
19【判断题】
方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。
我的答案:√
20【判断题】
一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量(实体)。
我的答案:√
21【判断题】
方法的参数的名字可以和方法中声明的局部变量的名字相同。
我的答案:×
22【判断题】
this可以出现在实例方法和构造方法中。
我的答案:√
23【判断题】
类中的实例方法可以用类名直接调用。
我的答案:×
24【判断题】
类中的实例变量在用该类创建对象的时候才会被分配内存空间。
我的答案:√
25【判断题】
类中的类方法(static方法)只能操作类变量(static变量),不可以操作实例变量。
我的答案:√