阅读以下说明和Java代码。 [说明] 已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运

admin2008-04-03  24

问题 阅读以下说明和Java代码。
[说明]
   已知类Stock和类JavaMain都定义在JavaMain.java文件中,类Stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。
[Java代码]
   01  public class Stock{
   02  static {
   03          shares=0;
   04          share_val=0.0;
   05  }
   06  private Stock(){getData();}
   07  private Stock(int n, double pr=0){
   08             shares=n;
   09             share_val=pr;
   10             getData();
   11          }
   12 public  void getData(){
   13     System.out.print(shares+":"+share_val+"");
   14 }
   15 private    int shares;           //非静态变量
   16 private    double share_val;   //非静态变量
   17 };
   18
   19 public class JavaMain{
   20 public static void main(String args[]){
   21      Stock a=new Stock();
   22      Stock b=new Stock(1,67.5);
   23      //其它代码省略,且代码无输出
   24 }
   25 }

选项

答案01代码行修改结果; class Stock{ 02代码行修改结果: { 06代码行修改结果: public Stock()<getData();} 07代码行修改结果: public Stock(int n,double pr){ 程序运行的输出结果为:0:0.0 1:67.5

解析 因为JavaMain和Stock定义在同一个文件中,所以只能够有—个公共类,因此Stock前的public应该去掉:因为shares和share_val都是非静态变量,所以不能够用静态初始化块进行初始化,所以应该把静态初始化块改为非静态初始化块,将static关键字去掉:定义中的构造函数为私有的,但构造函数在JavaMain类中被使用,因此构造函数应该为公共的。所以06和07行的代码应该将private改为public:构造函数中调用了输出函数,所以Java Main程序运行后输出结果为:0:0.0 1:67.5。
转载请注明原文地址:https://kaotiyun.com/show/ssjZ777K
0

最新回复(0)