-6

谁能告诉我为什么程序无法在第三部分执行,即当我传递复制构造函数时?它说在 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

4 回答 4

1

问题是这个构造函数

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

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

Stud(Stud s)
 {
  name=s.name;
  rollno=s.rollno;
  per=s.per;
 }
于 2013-01-14T00:41:20.587 回答
0

错误在此构造函数中:

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

你的意思是:

Stud(Stud s)
{
  name=s.name;
  rollno=s.rollno;
  per=s.per;
}
于 2013-01-14T00:47:13.387 回答
0

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

也许你的意思是

Stud (Stud s ) {}
于 2013-01-14T00:43:26.200 回答
0

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

Stud(Studs s)

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

error: cannot find symbol

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

更多关于 java 类型、值和变量的信息:http: //docs.oracle.com/javase/specs/jls/se7/html/jls-4.html

于 2013-01-14T00:49:10.167 回答