第一题
请写出下面厕所代码的执行结果
public class Hero {
private String name;
private int age;
public Hero() {
}
public Hero(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
name = name; //注意该行写法
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Test {
public static void main(String[] args) {
Hero hero=new Hero();
hero.setName("唐艺昕");
hero.setAge(18);
System.out.println(hero.getName()+","+hero.getAge());
Hero hero2=new Hero("姜惠恩",10);
System.out.println(hero2.getName()+","+hero2.getAge());
}
}
输出结果是:
null,18
姜惠恩,10
解析:
结果是null的原因是因为setName()的方法并没有成员变量赋值成功;
这是因为形参变量名和成员变量名重名,方法体name =name导致成员变量被隐藏,无法访问到成员变量从而赋值失败;因此输出的结果是个null默认值。
结果是姜惠恩的原因是因为第二个对象用全参构造直接给成员变量赋值,构造方法内部代码使用this关键字解决局部和成员变量重名问题this.name=name,因此可以给成员变量赋值。
注意:当你手写构造方法或者给私有成员变量写一对setget方法的时候,方法体记得写正确写规范。
============================================================================
第二题:
下面关于Java中类与对象描述错误的是
A、对象是类的一个实例
B、类是所有事物的模板,用事物属性特征和行为来描述所有事物
C、类是对象的模板,对象是类的实体
D、对象是一类事物的具体体现,必然具备该类事物的属性和行为
A正确
B错误,类是一类事物的模板,选B
C正确
D正确
============================================================================
第三题:
创建一个Person类
成员变量:
姓名 String name
年龄 int age
性别 String gender
全参数和空参数构造方法
成员方法:
show():该方法中打印Person变量的值:“姓名为:” + name + “,年龄为:” + age + “,性别为:” + gender;
在Test类中的main方法中:
一、分别创建三个Person对象;张三,23,男 李四,24,女 王五,25,男
二、创建一个ArrayList集合,集合存储的数据类型为Person对象。将上面的三个对象存入集合中!
三、遍历集合,在遍历的过程中:如果当前对象的年龄小于24的话。那么将当前对象的性别修改为女!并调用该对象的show()方法展示对象的信息。
public class Person {
private String name;
private int age;
private String gender;
public void show() {
System.out.println("姓名为:" + name + ",年龄为:" + age + ",性别为:" + gender);
}
public Person() {
}
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
public class Test {
public static void main(String[] args) {
Person person1 = new Person("张三", 23, "男");
Person person2 = new Person("李四", 24, "女");
Person person3 = new Person("王五", 25, "男");
ArrayList<Person> arrayList = new ArrayList<>();
arrayList.add(person1);
arrayList.add(person2);
arrayList.add(person3);
for (int i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).getAge() < 24) {
arrayList.get(i).setGender("女");
}
}
for (int i = 0; i < arrayList.size(); i++) {
arrayList.get(i).show();
}
}
}
255



被折叠的 条评论
为什么被折叠?



