问题 填空题

[说明]
下面Application程序根据ManKind类中的sex属性输出“Man!”或“Woman!”。程序全部写在Main.java文件中。程序中存在两个错误,分别在第01和14行,请将其改正或删除相应语句,并指出程序运行的输出结果。
[Java程序]
01 public class ManKind
02 int sex; //默认,是公有成员
03 public void manOrWoman()//公有方法
04 ifsex ==0 //表示男人
05 System.out.print "Man!”;
06 else //女人
07 System.out.print "Woman!";
08
09
10
11 public class Main
12 public static void main(String[] args
13 ManKind somePerson, somePerson2;
14 SomePerson. sex=1;
15 somePerson=new ManKind();
16 SomePerson.sex=1;
17 somePerson.manOrWoman();
18 SomePerson2=somePerson;
19 SomePerson2.sex=0:
20 somePerson2 .manOrWoman();
21 somePerson.manOrWoman();
22
23

答案

参考答案:01行改为class ManKind{
14行删除
输出结果为:Man! Woman! Woman!

解析: 本题考察Java编程,涉及类的声明,对象的声明、创建和使用。
程序写在Main.java文件中,根据“一个编译单元(即一个java文件)只能有一个公有类或接口,其名字必须与文件名相同”的原则,类ManKind不能声明为publiC。故01行应改为“class MainKind{”。
对象在声明时并未真正生成实例,需要用new关键字使其实例化方可使用。13行仅声明了对象并未真正实例化,因此14行的使用是错误的,应将其删除。
下面来看程序输出结果。
somePerson的sex属性被赋予了1,表示“男人”,调用方法manOrWoman()时应该输出“Man!”。此后,将somePerson赋给somePerson2,根据对象的引用本质,此后修改somePerson2的属性sex时也修改了somePerson的sex,亦即此时somePerson和somePerson2指向同一个内存单元可以说是同一个对象。将somePerson2的sex属性赋为0后,somePerson2和somePerson调用方法manOrWoman()时均应该输出“Woman!”。

单项选择题
单项选择题