GoShiva
16-01-2006, 21:37
ich bekomme folgenden fehler:
Exception in thread "main" java.lang.NoSuchMethodError: mon.Monster.<init>(Ljava/lang/String;DIILjava/lang/String;Z)V
at mon.MonsterVerwaltung.main(MonsterVerwaltung.java: 18)
Zeile 18 der MonsterVerwaltung.java:
mon.Monster myMonster = new mon.Monster(name, weight, hitPoints, foodUsage, resistTyp, isMagicAttacker);
Die Monster.java sieht folgendermaßen aus:
package mon; //Klasse befindet sich im Package "mon"
public class Monster { //Klasse Monster mit Eigenschaften und Konstruktoren
String name;
double weight;
int hitPoints;
int foodUsage;
String resistTyp;
boolean isMagicAttacker;
public Monster(){
}
public Monster(String pName, double pWeight, int pHitPoints, int pFoodUsage, String pResistTyp, boolean pIsMagicAttacker) { //1. Konstruktor, alle Attribute als Parameter
this.name=pName;
this.weight=pWeight;
this.hitPoints=pHitPoints;
this.foodUsage=pFoodUsage;
this.resistTyp=pResistTyp;
this.isMagicAttacker=pIsMagicAttacker;
}
public Monster(String pName, double pWeight, int pHitPoints, String pResistTyp) { //2. Konstruktor; name,resistTyp, weight und hitPoints als Parameter
this.name=pName;
this.weight=pWeight;
this.hitPoints=pHitPoints;
this.resistTyp=pResistTyp;
}
public Monster(String pName) { //3. Konstruktor; name als Parameter
this.name=pName;
}
/************************************************** ************************/
//Setter-Methoden
public void setName(String pName)
{
name=pName;
}
public void setWeight(double pWeight)
{
weight=pWeight;
}
public void setHitPoints(int pHitPoints)
{
hitPoints=pHitPoints;
}
public void setFoodUsage(int pFoodUsage)
{
foodUsage=pFoodUsage;
}
public void setResistTyp(String pResistTyp)
{
resistTyp=pResistTyp;
}
public void setIsMagicAttacker(boolean pMagicAttacker)
{
isMagicAttacker=pMagicAttacker;
}
/************************************************** *************************/
//Getter-Methoden
public String getName() {
return name;
}
public double getWeight() {
return weight;
}
public long getHitPoints() {
return hitPoints;
}
public int getFoodUsage() {
return foodUsage;
}
public String getResistTyp() {
return resistTyp;
}
public boolean getIsMagicAttacker() {
return isMagicAttacker;
}
}
woran liegts?
würde ich den defaultkonstruktor (public Monster(){}) in Monster.java nicht definieren, tritt der Fehler nicht auf. Diesen muss ich jedoch definieren, da nur so eine Vererbung möglich ist.
Exception in thread "main" java.lang.NoSuchMethodError: mon.Monster.<init>(Ljava/lang/String;DIILjava/lang/String;Z)V
at mon.MonsterVerwaltung.main(MonsterVerwaltung.java: 18)
Zeile 18 der MonsterVerwaltung.java:
mon.Monster myMonster = new mon.Monster(name, weight, hitPoints, foodUsage, resistTyp, isMagicAttacker);
Die Monster.java sieht folgendermaßen aus:
package mon; //Klasse befindet sich im Package "mon"
public class Monster { //Klasse Monster mit Eigenschaften und Konstruktoren
String name;
double weight;
int hitPoints;
int foodUsage;
String resistTyp;
boolean isMagicAttacker;
public Monster(){
}
public Monster(String pName, double pWeight, int pHitPoints, int pFoodUsage, String pResistTyp, boolean pIsMagicAttacker) { //1. Konstruktor, alle Attribute als Parameter
this.name=pName;
this.weight=pWeight;
this.hitPoints=pHitPoints;
this.foodUsage=pFoodUsage;
this.resistTyp=pResistTyp;
this.isMagicAttacker=pIsMagicAttacker;
}
public Monster(String pName, double pWeight, int pHitPoints, String pResistTyp) { //2. Konstruktor; name,resistTyp, weight und hitPoints als Parameter
this.name=pName;
this.weight=pWeight;
this.hitPoints=pHitPoints;
this.resistTyp=pResistTyp;
}
public Monster(String pName) { //3. Konstruktor; name als Parameter
this.name=pName;
}
/************************************************** ************************/
//Setter-Methoden
public void setName(String pName)
{
name=pName;
}
public void setWeight(double pWeight)
{
weight=pWeight;
}
public void setHitPoints(int pHitPoints)
{
hitPoints=pHitPoints;
}
public void setFoodUsage(int pFoodUsage)
{
foodUsage=pFoodUsage;
}
public void setResistTyp(String pResistTyp)
{
resistTyp=pResistTyp;
}
public void setIsMagicAttacker(boolean pMagicAttacker)
{
isMagicAttacker=pMagicAttacker;
}
/************************************************** *************************/
//Getter-Methoden
public String getName() {
return name;
}
public double getWeight() {
return weight;
}
public long getHitPoints() {
return hitPoints;
}
public int getFoodUsage() {
return foodUsage;
}
public String getResistTyp() {
return resistTyp;
}
public boolean getIsMagicAttacker() {
return isMagicAttacker;
}
}
woran liegts?
würde ich den defaultkonstruktor (public Monster(){}) in Monster.java nicht definieren, tritt der Fehler nicht auf. Diesen muss ich jedoch definieren, da nur so eine Vererbung möglich ist.