import java.util.Scanner;
public class TestPerson {
/**
* Creates a new instance of <code>TestPerson</code>.
*/
public TestPerson() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MemberType[] m = { new MemberType("Corporate Member"),new MemberType("VIP Member")
};
RegMember[] r = new RegMember[2];
Scanner s = new Scanner(System.in);
for(int i=0;i<r.length;i++){
System.out.println("your reg no is :"+(RegMember.getNextNo()+1));
for(int a=0;a<m.length;a++){
System.out.println((a+1)+". "+m[a].toString());
}
System.out.println("Enter Your selection:");
int sel=s.nextInt();
if(sel==1){
s.nextLine();
System.out.println(" enter name:");
String Name=s.nextLine();
System.out.println(" enter Handphone:");
String Hpnum=s.next();
System.out.println(" enter Age:");
int age=s.nextInt();
System.out.println("enter Company Name:");
String CompanyName=s.nextLine();
Cmember cm = new Cmember(Name,Hpnum,age,CompanyName);
}
else{
s.nextLine();
System.out.println(" enter name:");
String Name=s.nextLine();
System.out.println(" enter Handphone:");
String Hpnum=s.next();
System.out.println(" enter Age:");
int age=s.nextInt();
System.out.println("enter Email:");
String email=s.next();
Vipmember vip = new Vipmember(Name,Hpnum,age,email);
}
if(sel==1){
r[i]=new RegMember(cm);
}
else{
r[i]=new RegMember(vip);
}
s.nextLine();
}
displayInfor(r);
}
public static void displayInfor( RegMember[]r){
for(int i =0; i<r.length;i++)
System.out.println( r[i].toString());
}
}
问题是我收到了这个错误。
60: error: cannot find symbol
r[i]=new RegMember(cm);
^ symbol: variable cm
location: class TestPerson
64: error: cannot find symbol
r[i]=new RegMember(vip);
^ symbol: variable vip
location: class TestPerson 2 errors
答案 0 :(得分:0)
试试这个:
Cmember cm=null;
Vipmember vip=null;
if(sel==1){
...
cm = new Cmember(Name,Hpnum,age,CompanyName);
}
else{
...
vip = new Vipmember(Name,Hpnum,age,email);
}
if(sel==1){
r[i]=new RegMember(cm);
}
else{
r[i]=new RegMember(vip);
}
s.nextLine();
基本上,当您尝试使用cm和vip时,cm和vip不在范围内
答案 1 :(得分:-1)
这是因为简单的编译器无法找到你提到的变量。您已在块中声明变量。所以在街区之外他们不存在。您必须在适当的位置声明变量,以便可以访问它们。