[英]No suitable constructor found for ProductoExtranjero
我有这段代码,我的问题是它给我在ProductoExtranjeroPe = new ProductoExtranjero();
中的方法CrearProductoExtranjero
中给我一个错误ProductoExtranjeroPe = new ProductoExtranjero();
说构造函数不合适,请帮忙
import java.util.* ;
import java.util.Scanner;
public class ProductoExtranjero extends Producto {
private int PaisOrigen;
public ProductoExtranjero(int PaisOrigen, String UnNombre, String UnRubro) {
super(UnNombre, UnRubro);
this.PaisOrigen = PaisOrigen;
}
public ProductoExtranjero(int PaísOrigen) {
this.PaisOrigen = PaisOrigen;
}
public int getPaisOrigen() {
return PaisOrigen;
}
public void setPaisOrigen(int PaísOrigen) {
this.PaisOrigen = PaísOrigen;
}
@Override
public String toString() {
return "ProductoExtranjero{" + "PaiedsOrigen=" + PaisOrigen + "nombre=" + this.getNombre() + "rubro=" + this.getRubro() ;
}
public static Producto CrearProductoExtranjero() {
ProductoExtranjero Pe = new ProductoExtranjero();
Scanner in = new Scanner(System.in);
System.out.println("ingrese País de origen (1-120)");
Pe.setPaisOrigen(in.nextInt());
boolean val= true;
while(val){
System.out.println("Ingrese un nombre del producto: ");
Pe.setNombre(in.nextLine());
int nomlargo;
nomlargo=Pe.getNombre().length();
if (nomlargo<=0){
System.out.println("No ha ingresado un nombre producto valido. tiene que ser mayor a TRES!! caracteres.");
}
else{
val=false;
}
}
int opcion = 0;
boolean entrar = true;
while (entrar) {
System.out.println("Ingrese el rubro del producto. Tomando en cuenta que: \n1.Limpieza \n2.Cosmetica "
+ "\n3.Computacion \n4.Educacion \n5.Electrodomesticos \n6.Varios");
opcion = in.nextInt();
switch (opcion) {
case 1:
Pe.setRubro("Limpieza");
entrar = false;
;
case 2:
Pe.setRubro("Cosmetica");
entrar = false;
case 3:
Pe.setRubro("Computacion");
entrar = false;
case 4:
Pe.setRubro("Educacion");
entrar = false;
case 5:
Pe.setRubro("Electrodomesticos");
entrar = false;
case 6:
Pe.setRubro("Varios");
entrar = false;
default:
System.out.println("Ha ingresado un rubro no existente!!");
} break;
}
return Pe;
}
}
这是您的两个构造函数:
public ProductoExtranjero(int PaisOrigen, String UnNombre, String UnRubro) {
super(UnNombre, UnRubro);
this.PaisOrigen = PaisOrigen;
}
public ProductoExtranjero(int PaísOrigen) {
this.PaisOrigen = PaisOrigen;
}
它们都有参数。 但是这一行:
ProductoExtranjeroPe = new ProductoExtranjero();
...是用于在不指定任何参数的情况下调用构造函数的字符串。
您需要指定一个无参数的构造函数,或者在构造函数调用中指定参数。
(我也强烈建议您开始遵循Java命名约定。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.