一、选择
- 有关Java中的类和对象,以下说法错误的是
A. 同一个类的所有对象都拥有相同的特征和行为
B. 类和对象一样,只是说法不同
C. 对象是具有属性和行为的实体
D. 类规定了对象拥有的特征和行为
B
- 在java中,以下程序的运行结果是
A. 输出:null B. 正常运行,但不会输出任何内容 C. 编译出错,不能运行 D. 能运行,但运行时会出现异常
package lianxi;
class Person {
public String name;
}
public class Test {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);
}
}
A
- 下面代码运行的正确结果是
A. 编译错误,无法正常运行 B. 编译正确,但运行时产生错误 C. hello D. world
class Phone {
String message;
}
public class PhoneTest {
public static void main(String[] args) {
Phone one = new Phone();
one.message = "hello";
Phone two = one;
two.message = "world";
System.out.println(one.message);
}
}
D
- 哪个空间用于存储使用new关键字所创建的对象
A. 堆 B. 栈 C. 方法区 D. 实例区
A
- 分析下面的Java代码,编译运行结果是
A. 运行结果为:学号:1 姓名:张三
B. 运行结果为:学号:null 姓名:张三
C. 程序出现编译错误
D. 程序出现运行时异常
public class Test {
int number;
String strname;
Test(int num, String name) {
number = num;
strname = name;
System.out.println("学号:" + num + "姓名:" + name);
}
public static void main(String[] args) {
Test obj1 = new Test();
Test obj2 = new Test(1,"张三");
}
}
C
- 下面的哪几项是合法的构造方法重载(多选)
A. public Display(String s){ }
B. public int display(int n1,int n2){ }
C. Display (int …a){ }
D. public display(Strnig s,int a){ }
public class Display {
// ...
}
A C
- 运行结果为()
A. mainboard:华硕,cpu:Intel B. mainboard:s1,cpu:s2 C. mainboard:Intel,cpu:华硕 D. 华硕,Intel
public class User {
String mainboard,cpu;
public User(String s1, String s2) {
mainboard = s1;
cpu = s2;
}
public static void main(String[] args) {
User c = new User("华硕", "Intel");
System.out.println("mainboard:" + c.mainboard + ",cpu:" + c.cpu);
}
}
A
- 在Java中,以下程序编译运行后的输出结果为( )
A. 6 B. 3 4 C. 8 D. 7
public class Test {
int x,y;
Test(int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] arg) {
Test pt1,pt2;
pt1 = new Test(3,3);
pt2 = new Test(4,4);
System.out.print(pt1.x + pt2.x);
}
}
D
- 在Java中,下列关于this的说法错误的选项是(多选)
A. 在构造方法中如果使用this调用其他构造方法,只能是第一条语句
B. 不能在构造方法中调用同一个类的其他构造方法
C. 在构造方法在中如果使用this调用其他构造方法,语句可以放在任意位置
D. 可以使用“this.方法名()”或“this.属性名”来引用当前对象的成员
B C
二、编程
- 创建Person类和测试类
属性:名字(name),年龄(age),年级( grade)
方法:- 无参无返回值的student方法,描述为:我是一名学生!
- 带参数(性别sex)的方法,描述为:我是一个**孩!(其中,**为传入参数)
- 无参无返回值的mySelf方法,介绍自己的姓名、年龄、年级(参数参考效果图)
class Person {
String name;
int age;
String grade;
//student方法
public void student() {
System.out.println("我是一个学生!");
}
//sex方法
public void sex(String sex) {
System.out.println("我是一个" + sex +"孩!");
}
//mySelf方法
public void mySelf(String name, int age, String grade) {
this.name = name;
this.age = age;
this.grade = grade;
System.out.println("我叫" + name + ",今年 " + age + "岁,现在上 " + grade + "了!");
}
}
public class Test {
public static void main(String[] arg) {
//使用new关键字实例化对象
Person person = new Person();
//传入name、age、grade的参数值
String name = "王小明";
String sex = "男";
int age = 12;
String grade = "六年级";
//分别调用student、sex、mySelf方法
person.student();
person.sex(sex);
person.mySelf(name, age, grade);
}
}
- 编写自定义猴子类
public class Monkey {
//属性:姓名(name)、特征(feature)
String name,feature;
//无参的构造方法(默认初始化name和feature的属性值,属性值参考效果图)
public Monkey() {
System.out.println("我是使用无参构造产生的猴子:");
this.name = "名称:长尾猴";
this.feature = "特征:尾巴长";
}
//带参的构造方法(接收外部传入的参数,分别向 name 和 feature 赋值)
public Monkey(String name,String feature) {
System.out.println("我是使用带参构造产生的猴子:");
this.name = "名称:" + name;
this.feature = "特征:" + feature;
}
//完成两个构造器的实例化对象,并打印输出语句
public static void main(String[] arg) {
String name = "白头叶猴";
String feature = "头上有白毛,喜欢吃树叶";
Monkey monkey = new Monkey();
System.out.println(monkey.name);
System.out.println(monkey.feature);
System.out.println("=======================");
Monkey newMonkey = new Monkey(name,feature);
System.out.println(newMonkey.name);
System.out.println(newMonkey.feature);
}
}