Java 编译器错误:找不到符号
问题是我得到了这个错误Java 编译器错误:找不到符号,java,Java,问题是我得到了这个错误 import java.util.Scanner; public class TestPerson { /** * Creates a new instance of <code>TestPerson</code>. */ public TestPerson() { } /** * @param args the command line arguments */
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
基本上,当您试图使用cm和vip时,它们不在范围之内,这是因为编译器无法找到您提到的变量。您已经在块中声明了变量。因此,在街区之外,它们并不存在。您必须在适当的位置声明变量,以便访问它们。为什么我的答案为-1?
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();