我有一个名为fullname的类,它有变量fname,mname和lname。 然后另一个类参与者具有类型为fullname的变量名,类型为int的标记和其他变量。 在另一个类中,我必须创建大小为5的参与者数组,并且必须存储来自用户输入的信息。
我的问题是如何读取fullname变量的值,然后将其作为构造函数参数传递。 使用扫描仪时,它会产生无法从字符串转换为全名的错误。
class fullName {
String fname,String mName,String lName;
}
class participants {
fullname name;
int rollno ;
float marks;
public void participants (fullname name,int rollno,float marks) { //.....constructor definition }
}
class implements {
public static void main(String [] args) {
participants part[]=new participants ;
Scanner sc =new Scanner(System.in);
float marks=sc.nextFloat();
int rollno=sc.nextInt();
Fullname name=sc.next (); ---->giving error
part=new participants(name,rollno,marks); --->giving errors.
}
}
编辑:我在代码中做了一些更改,但仍没有正确输出'name'。
public class participants {
fullname name;
int rollno ;
float marks;
public participants(fullname nameFullname, int rollno, float marks) {
super();
this.name=new fullname(null, null, null);
this.rollno = rollno;
this.marks = marks;
}
@Override
public String toString() {
return "name=" + name + ", rollno=" + rollno + ", marks="
+ marks + "";
}
}
public class Implements {
public static void main(String [] args)
{
String a = null,b = null,c = null;
int rollno = 0;
float marks = 0;
participants part[]=new participants [5];
Scanner sc =new Scanner(System.in);
rollno=sc.nextInt();
marks=sc.nextFloat();
a=sc.next();
b=sc.next();
c=sc.next();
fullname name=new fullname(a,b,c);
part[1]=new participants(name,rollno,marks);
System.out.println(part[1].toString());
}
}
答案 0 :(得分:0)
sc.next()
正在返回String
(http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()),您正在尝试将其分配给Fullname
对象。 Fullname
不是String的实例,因此它无效。
如果你想做这个任务,你需要实现一个函数来为你做这个。
part=new participants(name,rollno,marks)
不起作用,因为您将part声明为数组,并且您正在尝试为其分配Participants
。 (顺便说一句,该类应以大写字母声明)。如果要分配它,请添加索引。 (例如part[0] = new participants(name,rollno,marks)
)