Kompileringsfejl - class expected
Jeg sidder og er ved at kompilere et program, men får følgende besked:C:\Java\program\eksamensopgave>javac Studerende.java
Studerende.java:103: class expected
this.sutilskud = double.parsedouble(input);
^
Studerende.java:105: class expected
this.suungtilskud = double.parsedouble(input);
^
Studerende.java:113: class expected
this.vualdertilskud = double.parsedouble(input);
^
Studerende.java:115: class expected
this.vuekstratilskud = double.parsedouble(input);
^
4 errors
Hvorfor er det, at jeg får denne fejl, jeg har ikke lagt mine ordninger ind i deres egen klasser, de ligger på klassen Studerende?
-----------------------
Koden ser således ud:
-----------------------
import javax.swing.*;
import java.text.*;
import java.util.*; // inkl. Vector.
import java.sql.*; // for ResultSet (eller recordset).
public class Studerende
{
private short cpr;
private String navn;
private String ordning;
private double sutilskud;
private double suungtilskud;
private double vualdertilskud;
private double vuekstratilskud;
private short antalpåfag;
private Fag faget; // En studerende ligger på faget.
public Studerende()
{
this.cpr = 0;
this.navn = "";
this.ordning = "";
this.sutilskud = 0;
this.suungtilskud = 0;
this.vualdertilskud = 0;
this.vuekstratilskud = 0;
this.antalpåfag = 0;
this.faget = new Fag(); // dannelse af et fag objekt indeholdende dummy data.
}
public Studerende(short cpr, String navn, String ordning, double sutilskud, double suungtilskud, double vualdertilskud, double vuekstratilskud, short antalpåfag)
{
this.cpr = cpr;
this.navn = navn;
this.ordning = ordning;
this.sutilskud = sutilskud;
this.suungtilskud = suungtilskud;
this.vualdertilskud = vualdertilskud;
this.vuekstratilskud = vuekstratilskud;
this.antalpåfag = antalpåfag;
this.faget = new Fag();
}
public Studerende(short cpr, String navn, String ordning, double sutilskud, double suungtilskud, double vualdertilskud, double vuekstratilskud, short antalpåfag, String Fagkode, String Fagnavn, short Fagtilskudsprocent)
{
this.cpr = cpr;
this.navn = navn;
this.ordning = ordning;
this.sutilskud = sutilskud;
this.suungtilskud = suungtilskud;
this.vualdertilskud = vualdertilskud;
this.vuekstratilskud = vuekstratilskud;
this.antalpåfag = antalpåfag;
this.faget = new Fag ();
this.faget.setFag(Fagkode, Fagnavn, Fagtilskudsprocent); // lageret tildeles data ved kald af metode på objektet.
}
public void setStuderende()
{
String input;
boolean cprtest = false;
dowhile (!cprtest);
{
input = JOptionPane.showInputDialog("Tast CPR-nummer:");
this.cpr = Short.parseShort(input);
cpr cprnr = new cpr(this.cpr);
cprtest = cprnr.isvalid();
}
this.navn = JOptionPane.showInputDialog("Indtast navn");
this.ordning = JOptionPane.showInputDialog("Tast ordning (VU/SU):");
Boolean ordningtest = false;
dowhile (!ordningtest);
{
if (ordning=="SU")
{
input = JOptionPane.showInputDialog("Tast sutilskud:");
this.sutilskud = double.parsedouble(input);
input = JOptionPane.showInputDialog("Tast suungtilskud:");
this.suungtilskud = double.parsedouble(input);
ordningtest = true;
}
if (ordning=="VU")
{
input = JOptionPane.showInputDialog("Tast vualdertilskud:");
this.vualdertilskud = double.parsedouble(input);
input = JOptionPane.showInputDialog("Tast vuekstratilskud:");
this.vuekstratilskud = double.parsedouble(input);
ordningtest = true;
}
}
}
{
input = JOptionPane.showInputDialog("Tast antal på fag:");
this.antalpåfag = Short.parseShort(input);
this.faget.setFag(); // Faget har sin egen metode for at spørge om data.
}
public void setStuderende(short cpr, String navn, String ordning, double sutilskud, double suungtilskud, double vualdertilskud, double vuekstratilskud, short antalpåfag, String Fagkode, String Fagnavn, short fagtilskudsprocent);
{
this.cpr = cpr;
this.navn = navn;
this.ordning = ordning;
this.sutilskud = sutilskud;
this.suungtilskud = suungtilskud;
this.vualdertilskud = vualdertilskud;
this.vuekstratilskud = vuekstratilskud;
this.antalpåfag = antalpåfag;
faget.setFag(Fagkode, Fagnavn, Fagtilskudsprocent);
}
public void setcpr(short cpr)
{
this.cpr = cpr;
}
public void setnavn(String navn)
{
this.navn = navn;
}
public void setordning(String ordning)
{
this.ordning = ordning;
}
public void setsutilskud(double sutilskud)
{
this.sutilskud = sutilskud;
}
public void setsuungtilskud(double suungtilskud)
{
this.suungtilskud = suungtilskud;
}
public void setvualdertilskud(double vualdertilskud)
{
this.vualdertilskud = vualdertilskud;
}
public void setvuekstratilskud(double vuekstratilskud)
{
this.vuekstratilskud = vuekstratilskud;
}
public void setantalpåfag(short antalpåfag)
{
this.antalpåfag = antalpåfag;
}
public void setFagnavn(String Fagnavn)
{
Fagnavn = Fagnavn;
}
public void setFagkode(String Fagkode)
{
Fagkode = Fagkode;
}
public void setFagtilskudsprocent(short Fagtilskudsprocent)
{
Fagtilskudsprocent = Fagtilskudsprocent;
}
public short getcpr()
{
return (this.cpr);
}
public String getnavn()
{
return (this.navn);
}
public String getordning()
{
return (this.ordning);
}
public double getsutilskud()
{
return (this.sutilskud);
}
public String getsutilskudPrisFormat()
{
DecimalFormat kr_format = new DecimalFormat("#,##0.00 kr;-#,##0.00 kr", new DecimalFormatSymbols(new Locale("da", "dk")));
return (kr_format.format(this.sutilskud));
}
public double getsuungtilskud()
{
return (this.suungtilskud);
}
public String getsuungtilskudPrisFormat()
{
DecimalFormat kr_format = new DecimalFormat("#,##0.00 kr;-#,##0.00 kr", new DecimalFormatSymbols(new Locale("da", "dk")));
return (kr_format.format(this.suungtilskud));
}
public double getvualdertilskud()
{
return (this.vualdertilskud);
}
public String getvualdertilskudPrisFormat()
{
DecimalFormat kr_format = new DecimalFormat("#,##0.00 kr;-#,##0.00 kr", new DecimalFormatSymbols(new Locale("da", "dk")));
return (kr_format.format(this.vualdertilskud));
}
public double getvuekstratilskud()
{
return (this.vuekstratilskud);
}
public String getvuekstratilskudPrisFormat()
{
DecimalFormat kr_format = new DecimalFormat("#,##0.00 kr;-#,##0.00 kr", new DecimalFormatSymbols(new Locale("da", "dk")));
return (kr_format.format(this.vuekstratilskud));
}
public short getantalpåfag()
{
return (this.antalpåfag);
}
public String getFagnavn()
{
return (Fagnavn);
}
public String getFagkode()
{
return (Fagkode);
}
public short getFagtilskudsprocent()
{
return (Fagtilskudsprocent);
}
public boolean getStuderende(short findcpr)
// GØR: På basis af indparameteren findVareNummer findes oplysninger om varen og dets lager
// i databasen, og oplysningerne tildeles det vare objekt som metoden kaldes på.
// Så kan oplysningerne senere udtages fra objektet via get metoder eller vises på
// skærmen via toString eller showVare metoderne.
// RETUR: Der returneres true hvis varen fandtes i databasen ellers false.
{
boolean fundet = false;
ResultSet resultSet;
String sql;
sql = "SELECT Studerende.cpr, Studerende.navn, Studerende.ordning, Studerende.sutilskud, Studerende.suungtilskud, Studerende.vualdertilskud, Studerende.vuekstratilskud, Studerende.antalpåfag, Fag.Fagkode, Fag.Fagnavn, Fag.Fagtilskudsprocent ";
sql += "FROM Studerende INNER JOIN Fag ON Studerende.Fagkode = Fag.Fagkode ";
sql += "WHERE cpr = '" + findcpr + "';";
DB db = new DB(); // skabelse af forbindelse til databasen via et objekt db.
db.openDBConnection(); // åbne forbindelsen.
try
{
resultSet = db.getResultSet(sql); // sende sql sætning til db objektet og få resultset/recordset retur.
if (resultSet.next())
{
setcpr(resultSet.getShort("cpr"));
setnavn(resultSet.getString("navn"));
setordning(resultSet.getString("ordning"));
setsutilskud(resultSet.getdouble("sutilskud"));
setsuungtilskud(resultSet.getdouble("suungtilskud")); // tildeling af lageret objektet via
setvualdertilskud(resultSet.getdouble("vualdertilskud")); // metoder her i Vare klassen.
setvuekstratilskud(resultSet.getdouble("vuekstratilskud")); // tildeling af lageret objektet via
setantalpåfag(resultSet.getShort("antalpåfag")); // metoder her i Vare klassen.
setFagkode(resultSet.getString("Fagkode")); // tildeling af lageret objektet via
setFagnavn(resultSet.getString("Fagnavn")); // metoder her i Vare klassen.
setFagtilskudsprocent(resultSet.getShort("Fagtilskudsprocent")); // metoder her i Vare klassen.
fundet = true;
}
resultSet.close(); // lukke resultset/recordset.
}
catch (SQLException e)
{
System.out.println("Fejl i udførelsen af SQL."+e);
}
db.closeDBConnection(); // lukke forbindelsen til databasen.
return(fundet); // db objektet bliver nedlagt automatisk, da det er et lokalt objekt i denne metode
} // og forsvinder ud af hukommelsen via garbage collector.
public Vector getStuderende()
// GØR: Finder alle vare oplysninger i databasen og indsætter dem som vare objekter i en vektor.
// Der ændres ikke på tilstanden af det vare objekt metoden kaldes på.
// RETUR: En vektor med vare objekter indeholdende data.
{
Vector list = new Vector();
ResultSet rs;
String sql;
sql = "SELECT Studerende.cpr, Studerende.navn, Studerende.ordning, Studerende.sutilskud, Studerende.suungtilskud, Studerende.vualdertilskud, Studerende.vuekstratilskud, Studerende.antalpåfag, Fag.Fagkode, Fag.Fagnavn, Fag.Fagtilskudsprocent ";
sql += "FROM Studerende INNER JOIN Fag ON Studerende.Fagkode = Fag.Fagkode ";
sql += "ORDER BY Studerende.cpr;";
DB db = new DB();
db.openDBConnection();
try
{
rs = db.getResultSet(sql);
while (rs.next())
{ // skabelse af vare objekt i hukommelsen og referencen til objektet indsættes i vektoren,
// så garbage collector ikke sletter objektet når metoden er færdig.
Studerende s = new Studerende(rs.getShort("cpr"), rs.getString("navn"), rs.getString("ordning"), rs.getdouble("sutilskud"), rs.getdouble("suungtilskud"),rs.getdouble("vualdertilskud"),rs.getdouble("vuekstratilskud"),rs.getShort("antalpåfag"), rs.getString("Fagkode"),rs.getString("Fagnavn"),rs.getShort("Fagtilskudsprocent"));
list.addElement(s);
}
rs.close();
}
catch (SQLException e)
{
System.out.println("Fejl i udførelsen af SQL."+e);
list = null;
}
db.closeDBConnection();
return (list);
}
public Vector getStuderendepåFag(short findFagkode)
// GØR: På basis af indparameteren findLagerId findes alle varepriser fra databasen
// og indsættes som double objekter i en vektor, da vektor kun kan indeholde objekter.
// Der ændres ikke på tilstanden af det vare objekt metoden kaldes på.
// RETUR: En vektor med double objekter indeholdende priser på varer fra lageret findLagerId.
{
Vector list = new Vector();
ResultSet rs;
String sql;
sql = "SELECT Studerende.Fagnavn ";
sql += "FROM Studerende ";
sql += "WHERE Fagkode = " + findFagkode + ";";
DB db = new DB();
db.openDBConnection();
try
{
rs = db.getResultSet(sql);
while (rs.next())
{
list.addElement(new String(rs.getString("Fagnavn")));
}
rs.close();
}
catch (SQLException e)
{
System.out.println("Fejl i udførelsen af SQL."+e);
list = null;
}
db.closeDBConnection();
return (list);
}
public boolean saveStuderende()
// GØR: Gemmer pågældende vare objekts oplysninger i databasen, typisk efter en indtastning
// hvor vare objektet blev tildelt brugerens indtastninger i metoden setVare().
// Der ændres ikke på tilstanden af det vare objekt metoden kaldes på.
// RETUR: Der returneres true hvis det lod sig gøre at gemme varen ellers false.
{
boolean ok = false;
String sql;
sql = "INSERT INTO Studerende (cpr, navn, sutilskud, suungtilskud, vualdertilskud, vuekstratilskud, antalpåfag, Fagkode) ";
sql += "VALUES ('" + this.cpr + "','"+ this.navn + "'," + this.sutilskud + "," + this.suungtilskud + "," + this.vualdertilskud + "," + this.vuekstratilskud + "," + this.antalpåfag + "," + this.getFagkode() + ");";
DB db = new DB();
db.openDBConnection();
ok = db.doExecute(sql); // returnerer true hvis sql blev udført korrekt ellers false, f.eks.
db.closeDBConnection(); // ved primærnøgle brud.
return(ok);
}
public String toString()
{
return ("\n" +
"cpr: " + getcpr() + "\n" +
"navn: " + getnavn() + "\n" +
"sutilskud: " + getsutilskudPrisFormat() + "\n" +
"suungtilskud: " + getsuungtilskudPrisFormat() + "\n" +
"vualdertilskud: " + getvualdertilskudPrisFormat() + "\n" +
"vuekstratilskud: " + getvuekstratilskudPrisFormat() + "\n" +
"Antalpåfag: " + getantalpåfag() + "\n" +
"Fagnavn: " + getFagnavn() + "\n");
}
public void showStuderende()
{
JOptionPane.showMessageDialog(null, toString(), "Oplysning om en studerende", JOptionPane.INFORMATION_MESSAGE);
}
public void showalleStuderende()
// GØR: Henter alle studerende oplysningerne fra databasen via metoden getStuderende() og opstiller dem i en html table.
// Der ændres ikke på tilstanden af det studerende objekt metoden kaldes på.
{
String s = "";
Vector list = this.getStuderende(); // en vektor af studerende objekter for alle studerende i databasen, a la et resultset/recordset.
if (list.size() >= 1)
{
s += "<html><body><table cellspacing=5 cellpadding=5>";
s += "<tr><td>Fagkode</td><td>Fagnavn</td><td>Ordning</td><td>SUtilskud/td><td>SUungtilskud</td><td>VUaldertilskud</td><td>VUekstratilskud</td><td>Antal på fag</td></tr>";
for(int i = 0; i < list.size(); i++)
s += (((Studerende) list.elementAt(i)).toTable()); // for hver studerende objekt i vektoren opstilles en række i html table.
s += "</table></body></html>";
}
else
s = "Ingen Studerende.\n";
JOptionPane.showMessageDialog(null, s, "Studerende", JOptionPane.PLAIN_MESSAGE);
}
public String toTable();
{
return("<tr><td align=left>"+getFagkode()+"</td><td align=left>"+getFagnavn()+"</td><td align=right>"+getordning()+"</td><td align=right>"+getsutilskudPrisFormat()+"</td><td align=right>"+getsuungtilskudPrisFormat()+"</td><td align=right>"+getvualdertilskudPrisFormat()+"</td><td align=right>"+getvuekstratilskudPrisFormat()+"</td><td align=right>"+getantalpåfag()+"</td></tr>");
}
}
