Kode: Vælg alt
package kap14;
public class Main {
public static void main(String[] args) {
Bog mobyDick = new Bog();
mobyDick.setSidetal(245);
mobyDick.setPris(150.50);
mobyDick.setForfatter("MobyDick ");
mobyDick.setForlag("(Nordisk Bøger) ");
mobyDick.info();
Bog guideToTheGalaxy = new Bog();
guideToTheGalaxy.setSidetal(185);
guideToTheGalaxy.setPris(75.95);
guideToTheGalaxy.setForfatter("Guide To The Galaxy");
guideToTheGalaxy.setForlag("Et eller andet");
guideToTheGalaxy.info();
Bog learnCode = new Bog();
learnCode.setSidetal(345);
learnCode.setPris(450.75);
learnCode.setForfatter("Learn Code");
learnCode.setForlag("Et eller andet");
learnCode.info();
Religion Biblen = new Religion();
Biblen.setSidetal(123);
Biblen.setPris(255.0);
Biblen.setForfatter("Biblen");
Biblen.setForlag("Heaven Books");
Biblen.setreligion("Kristendom");
Biblen.info();
}
}
Kode: Vælg alt
package kap14;
public class Bog {
// Instanser
int sidetal;
double pris;
String forfatter;
String forlag;
// Set- Metoder
void setForlag(String forlag){
this.forlag= forlag;
info();
}
void setForfatter(String forfatter){
this.forfatter = forfatter;
}
void setSidetal(int sidetal) {
this.sidetal=sidetal;
}
void setPris(double pris) {
this.pris= pris;
}
// Get-Metoder
int getSidetal(){
return sidetal;
}
double getPris(){
return pris;
}
String getForlag(){
return forlag;
}
String getForfatter(){
return forfatter;
}
// Info-metode
void info(){
String infoString = "Title: " + forfatter + " Forlag: " + forlag + " Pris: " + pris + " Sidetal: " + sidetal;
System.out.println(infoString);
}
}
Kode: Vælg alt
package kap14;
public class Religion extends Bog {
// instanser
String religion;
// Set- metoder
void setreligion (String religion){
this.religion = religion;
}
// Get-metoder
String getReligion (){
return religion;
}
// Info-metode
void info(){
String infoString = "Title: " + forfatter + " Forlag: " + forlag + " Pris: " + pris + " Sidetal: " + sidetal + " Religion: " + religion;
System.out.println(infoString);
}
}
Spørgsmål til min kode.
I min class Bog kalder jeg en info(); Men hvis jeg flytter den til et andet sted i koden udskriver den ikke noget.
Det vil sige den kan kun stå i set motoden, hvorfor det?
2. I min main class havde jeg
Religion Biblen = new Religion();
Biblen.setForfatter("Biblen");
Biblen.setForlag("Heaven Books");
Biblen.setSidetal(123);
Biblen.setPris(255.0);
Biblen.setreligion("Kristendom");
Her blev mit sidetal og retuneret til 0. Hvis jeg flytter set.pris og set.sidetal op til dette.
Religion Biblen = new Religion();
Biblen.setSidetal(123);
Biblen.setPris(255.0);
Biblen.setForfatter("Biblen");
Biblen.setForlag("Heaven Books");
Biblen.setreligion("Kristendom");
Virker det fint. Hvorfor?
@override virker ikke. Jeg får denne fejl.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error, annotations are only available if source level is 1.5 or greater
override cannot be resolved to a type
3. Jeg var nødt til at flytte mit info(); kald ud af Bog og over i main.
Hvis jeg beholdte den i Bog retuneret religion null og ikke Kristendom. Jeg kan godt forstå at setreligion ikke er sat endnu ved udprintningen og derfor returnerer null.
Hvis jeg sætter en info(); ind i mit set metode på religion classen fungerer det i forhold til data
Men den returnerer så
Title: MobyDick Forlag: (Nordisk Bøger) Pris: 150.5 Sidetal: 245
Title: Guide To The Galaxy Forlag: Et eller andet Pris: 75.95 Sidetal: 185
Title: Learn Code Forlag: Et eller andet Pris: 450.75 Sidetal: 345
Title: Biblen Forlag: Heaven Books Pris: 255.0 Sidetal: 123 Religion: null
Title: Biblen Forlag: Heaven Books Pris: 255.0 Sidetal: 123 Religion: Kristendom
Den eneste løsning jeg kunne komme på var at kalde info (); fra Main.