Reputation: 1
this is my code
public class RegMember {
private int regno;
private Cmember cmember;
private Vipmember vipmember;
private Clubs clubs;
private static int nextNo =1000;
public RegMember(Cmember cmember,Vipmember vipmember,Clubs clubs) {
this.vipmember=vipmember;
this.cmember=cmember;
this.clubs=clubs;
regno=++nextNo;
}
public static int getNextNo(){
return nextNo;
}
public String toString(){
return String.format("%-6d%-25s%-40s",regno,vipmember,cmember,clubs);
}
}
This is the main class
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];
Cmember cm;
Vipmember vip;
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();
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();
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());
}
}
This is the problem i facing..
error: constructor
RegMember in class RegMember cannot be applied to given types;
r[i]=new RegMember(cm);
^
required: Cmember,Vipmember,Clubs
found: Cmember
reason: actual and formal argument lists differ in length
error: constructor
RegMember in class RegMember cannot be applied to given types;
r[i]=new RegMember(vip);
^
required: Cmember,Vipmember,Clubs
found: Vipmember
reason: actual and formal argument lists differ in length
2 errors
Upvotes: 0
Views: 73
Reputation: 11027
RegMember
has no constructor that takes a single Cmember
as a parameter. This is why new new RegMember(cm)
doesn't compile.
Similarly, it has no constructor that takes a single Vipmember
. So new RegMember(vip)
fails to compile too.
Upvotes: 1
Reputation: 69035
You have constructor
public RegMember(Cmember cmember,Vipmember vipmember,Clubs clubs) {
this.vipmember=vipmember;
this.cmember=cmember;
this.clubs=clubs;
regno=++nextNo;
}
So you cannot call
r[i]=new RegMember(cm);
That is with just one argument Cmember
. Either define constructor
public RegMember(Cmember cmember) {
}
or use your existing constructor to create new instances.
Upvotes: 1