Hallo leute,
ich stehe vor einem Problem und komme einfach nicht mehr weiter.
folgende Situation ist gegeben:
Klasse CMaterial:
und die abstrakte klasse CMaterialsort:
der Kompiler gibt folgenden Fehler aus:
Quelltext wurde in BlueJ geschrieben.
Woran liegt es?
Vielen dank im voraus für eure mühen.
MfG
ich stehe vor einem Problem und komme einfach nicht mehr weiter.
folgende Situation ist gegeben:
Klasse CMaterial:
Java:
import java.io.*;
import java.util.*;
/**
*Class CMateriatl. Jedes Material besteht aus einem Namen zum Beispiel Holz oder Gals. Jedes
*dieser Materialien hat eine festgelegte Dichte und einen festgelegten Preis pro Kilogramm.
*
* @author ()
* @version 29.05.2014
*/
public class CMaterial
{
// instance variables - replace the example below with your own
public String Name;
private double Dichte;
public double Pprokg;
private static String Datei;
private boolean Check;
/**
* Konstruktor des Objekts CMaterial
*/
public CMaterial(String Name, double Dichte, double Pprokg)
{
this.Name = Name;
this.Dichte = Dichte;
this.Pprokg = Pprokg;
}
/**
* Konstruktor des Objekts CMaterial am Beispiel von Holz
*/
public CMaterial()
{
this.Name="Holz";
this.Dichte=0.0006; //(kg/cm)
this.Pprokg=0.3; //€
}
/**
* Diese Methode liest eine *.txt - Datei ein. Diese hat alle Materialien hinterlegt.
*
* @ return: materialien
*/
public static CMaterial[] MaterialEinlesen ()
{
int zaehler = 0;
CMaterial[] materialien = null;
Scanner dateiwerte=null;
Scanner hilfe=null;
try
{
File Datei = new File("Materialliste.txt");
dateiwerte = new Scanner(Datei);
hilfe = new Scanner(Datei);
while(hilfe.hasNext())
{
zaehler++;
hilfe.next();
}
materialien = new CMaterial[zaehler/3];
for(int i = 0; i < zaehler/3; i++)
{
materialien[i] = new CMaterial(dateiwerte.next(),Double.parseDouble(dateiwerte.next()),Double.parseDouble(dateiwerte.next()));
}
} catch (IOException e) {
System.err.println("Fehler! Datei konnte nicht eingelesen werden. :" + e);
} finally {
try {
System.out.println("Closing Scanner!");
dateiwerte.close();
hilfe.close();
System.out.println("Scanner Closed!");
} catch (Exception e) {
System.err.println("Fehler! Datei konnte nicht geschlossen werden. :" + e);
}
}
return materialien;
}
/**
* Eine Methode zum überprüfen, ob Dateiname richtig übergeben wurden ist.
*
* @return: boolean check5
*/
public boolean getCheck()
{
if (Datei.equals("Materialliste.txt"))
{
boolean Check = true;
}
else
{
System.out.println("Der Dateinamen ist falsch!");
}
return Check ;
}
/**
* Methode zur Rückgabe der Dichte des Materials
*
* @param keine Parameter
* @return Dichte
*/
public double getDichte()
{
return Dichte;
}
/**
* Methode zur Rückgabe des Preises pro Kilogramm
*
* @param keine Parameter
* @return Pprokg
*/
public double getPprokg()
{
return Pprokg;
}
/**
* Methode zur Rückgabe des Namens des Materials
*
* @param keine Parameter
* @return Name
*/
public String getName()
{
return Name;
}
/**
* Methode zum Setzen der Dichte
*
* @param neue Dichte
* @return keine Rückgabe
*/
public void setDichte(double neuDichte)
{
Dichte=neuDichte;
}
/**
* Methode zum Setzen des Preises pro Kilogramm
*
* @param neuer Pprokg (Preis pro Kilogramm
* @return keine Rückgabe
*/
public void setPprokg(double neuPprokg)
{
Pprokg=neuPprokg;
}
/**
* Methode zum Setzen des Namens
*
* @param neuer Name
* @return keine Rückgabe
*/
public void setName(String neuName)
{
Name=neuName;
}
}
und die abstrakte klasse CMaterialsort:
Java:
/**
* Write a description of class CMaterialSort here.
*
* @author (your name)
* @version (a version number or a date)
*/
public abstract class CMaterialsort implements Comparable<CMaterial>
{
private String Name;
private double Pprokg;
private double Dichte;
public void Material(String Name, double Pprokg, double Dichte)
{
this.Dichte = Dichte;
this.Name = Name;
this.Pprokg = Pprokg;
}
@Override
public String compareTo(CMaterial comparestu) {
String compareage=((CMaterial)comparestu).getName();
/* For Ascending order*/
return this.Name-compareage;
/* For Descending order do like this */
//return compareage-this.studentage;
}
@Override
public String toString() {
return "[ Dichte=" + Dichte + ", Name=" + Name + ", Dichte pro Kg=" + Pprokg + "]";
}
}
der Kompiler gibt folgenden Fehler aus:
Quelltext wurde in BlueJ geschrieben.
Woran liegt es?
Vielen dank im voraus für eure mühen.
MfG