请教:Java程序设计练习试卷1第1大题第2小题如何解答?
【题目描述】
阅读以下说明和Java代码,回答问题。
[说明]
已知类Stock和类cxyjava都定义在cxyjava.java文件中,类Stock的定义中第14行前共有四行出现了错误,将下而代码修改正确并完善后的输出结果为:
0:0
1:23
[Java代码]
01 publiC class Stock {
02 static {
03 shares=0;
04 share_val = 0.0;
05 }
06 public Stock( ) {getData( );}
07 publie Stock(int n, int pr=0){
08 shares=n;
09 share val=pr;
10 getData( );
11 }
12 public void getData( ) {
13 System.out.printin(shares+ ":" +share_val);
14 }
15 private int shares;
16 private int share val;
17 };
18
19 public class cxyjava {
20 public static void main(String args[]){
21 Stock a= (1) ;
22 Stock b=new Stock(1,23);
23 //其他无输出代码省略
24 }
25 }
请补齐第21行代码中的空缺。
【我提交的答案】:
【参考答案分析】:
第1行,去掉public第2行,去掉static第4行,share val=0第7行,去掉“=0”new Stock(),或者new Stock(0,0) 解析:Java代码中,一个文件只能有一个与文件同名的公共类,所以问题1中第一行Stock类前面的public修饰符要去掉。静态的初始化区域只能对类的静态变量进行初始化,而shares和share val不是静态变量,所以需要去掉第2行的static。第16行将share val定义为int型,所以第4行赋值有误,需要改为0。第7行Stock类的构造函数没有默认参数的用法,所以需要将默认值去掉。对于问题2由于程序输出的第一行为0:0,所以直接调用构造函数Stock( ),因为默认参数均已为0,或者调用构造函数Stock(0,0)也可实现。