我想检查并运行下面的代码,但它给了我预期的错误标识符

时间:2013-01-14 00:39:29

标签: java

有谁可以告诉我为什么程序在第三部分没有执行,即当我通过复制构造函数时? 它表示在Stud(studs)附近预期的标识符

class Stud
{
String name;
int rollno;
double per;

Stud()
 {
  name="";
  rollno=0;
  per=0.0;
 }

Stud(String n,int rn,double p)
 {
  name=n;
  rollno=rn;
  per=p;
 }

Stud(Studs)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }


void display()
{
 System.out.println(name+ "\t" +rollno+ "\t" +per);
}
}

class StudApp14
 {
  public static void main(String a[])
   {
    Stud s1=new Stud();
    Stud s2=new Stud("Amit",501,65.0);
    Stud s3=new Stud(s2);
    s1.display();
    s2.display();
    s3.display();
   }
 }

4 个答案:

答案 0 :(得分:1)

问题是这个构造函数

Stud(Studs)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }

它应该是(你在类型和变量名之间缺少空格):

Stud(Stud s)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }

答案 1 :(得分:0)

螺柱(螺柱)  {   命名= s.name;   rollno = s.rollno;   每= s.per;  } 什么是“螺柱”?没有定义。

也许你的意思

Stud (Stud s ) {}

答案 2 :(得分:0)

错误在于此构造函数:

Stud(Studs)
{
  name=s.name;
  rollno=s.rollno;
  per=s.per;
}

你的意思是:

Stud(Stud s)
{
  name=s.name;
  rollno=s.rollno;
  per=s.per;
}

答案 3 :(得分:0)

编译器认为“Studs”是一种类型并且缺少标识符。因此,如果您严格遵循编译器错误并决定通过添加如下标识符来修复它:

Stud(Studs s)

然后你会收到一个错误说:

error: cannot find symbol

这意味着编译器搜索“Studs”类型并找不到它。

有关java类型,值和变量的更多信息,请访问:http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html