Vererbung

Status
Nicht offen für weitere Antworten.

Fighter_MV

Mitglied
Aufgabe ist es ein Kassensystem zu programmieren, die jeweiligen Preise zu lesen, Rabbat und Steuern berechnen, diese addieren und subtrahieren etc.

Ich habe bis jetzt folgenden Code:


Code:
public class Kasse {
	
	public class Item {
	
		protected float price;
		protected int id;
		
		public Item() {
			
		}
			
		
		public float getPrice() {
			return price;
		}
		
		public int getId() {
			return id;
		}
		
	}
	
	public class Kleidung extends Item {
		
		protected int size, materialId;
		
		public int getSize() {
			return size;
		}
		
		public int getMaterialId() {
			return materialId;
		}
		
	}
	
	public class Lebensmittel extends Item {
		
		protected int expiration;
		
		public int getExp() {
			return expiration;
		}
		
	}
	
	public class Buch extends Item {
		
		protected int isbn = 556;
		protected String author = "Otto", title = "Das Grauen";
		
		public Buch() {
		 
		id = 0;
		price = 10.0f;
		
		}
		
		public int getISBN() {
			return isbn;
		}
		
		public String getAuthor() {
			return author;
		}
		
		public String getTitle() {
			return title;
		}
		
	}
	
	public class Hose extends Kleidung {
		
		protected int length = 20;
		
		public Hose() {
			
			id = 1;
			price = 50.0f;
			size = 20;
			materialId = 3;
		}
		
		public int getLength() {
			return length;
		}
	}
	
	public class Shirt extends Kleidung {
		
		public Shirt() {
			
			id = 2;
			price = 20.0f;
			size = 13;
			materialId = 2;
		}
	}
	
	public class Bier extends Lebensmittel {
		
		public Bier() {
			
			id = 3;
			price = 1.0f;
			expiration = 5;
		}
	}
	
	public class Kaffee extends Lebensmittel {
		
		public Kaffee() {
			
			id = 4;
			price = 1.0f;
			expiration = 4;
		}
	}
	
	public class Nudeln extends Lebensmittel {
		
		protected float kochzeit = 4.30f;
		
		public Nudeln() {
			
			id = 5;
			price = 1.0f;
			expiration = 3;
		}
		
		public float getKochzeit() {
			return kochzeit;
		}
	}
	
	// Steuern
	
	public float steuernBuch() {
		return Buch.price/10 + Buch.price;
	}
	
}

Das Problem ist, dass ich irgendwie den price nicht gelesen kriege.
Ich habe folgendes Testprogramm erstellt:

Code:
public class KasseProgramm {
	public static void main(String [] args) {
		
		Buch test = new Buch();
		
		System.out.println(test.price);
	}
}


Folgender Kompilierfehler tritt auf:


C:\Progs\uebung7\KasseProgramm.java:4: cannot resolve symbol

symbol : class Buch

location: class KasseProgramm

Buch test = new Buch();

^


Ich weiß nicht mehr weiter. Buch ist doch genau so geschrieben wie Buch oder nicht o.o
 
S

SlaterB

Gast
Buch scheint bei dir als innere Klasse innerhalb von Kasse definiert zu sein,
das macht das ganze recht kompliziert

du brauchst zum einen

import package.Kasse.Buch;

außerdem kann man dann ein Buch-Objekt nur abhängig von einer Kasse erzeugen:

Kasse c = new Kasse();
Buch test = c.new Buch();

vielleicht trennst du die Klassen doch besser voneinander ;)

(edit: das ganze geht nur, wenn beide Klassen in einem package sind!)

-------

bei mir funktioniert übrigens bereits die Klasse Kasse nicht

public float steuernBuch() {
return Buch.price/10 + Buch.price;
}

ist seltsam, was soll das bedeuten? auf welches Buch bezieht sich das?
bzw. da wird ja die Klasse angesprochen aber price ist doch eine Exemplarvariable eines Buch-Objektes, nicht der Klasse (statisch)
 

Fighter_MV

Mitglied
danke für deine Hilfe, ich werde das mal ausprobieren.

Ich weiß, dass es etwas umständlich ist, aber leider ist es explizit so in der Aufgabenstellung gegeben :(

Edit: Ja der Kompilierfehler war vorerst nur ein Test ;) Den hab ich wieder rausgelöscht

Edit2:

Habs jetzt so gemacht wie du gesagt hast, also so:

Code:
public class KasseProgramm {
	
	 
	
	public static void main(String [] args) {
		
		Kasse c = new Kasse();
		Buch test = c.new Buch(); 
		
		System.out.println(test.price);
		
		
	}
}


Die beiden Dateien liegen im selben Ordner, trotzdem kommt immer noch der Fehler
 
S

SlaterB

Gast
damit klappt es sogar im Default-Package, günstig


ansonsten müsste wie gesagt noch
import package.Kasse.Buch;
dazu,

der Befehl geht allerdings nur, wenn Kasse in einem Unterpackage enhalten ist,

import Kasse.Buch;
mag zumindest mein Compiler nicht
 

Yzebär

Bekanntes Mitglied
Nur noch eine kleine Anmerkung. Du solltest zum abrufen der Preise die Methode getPrice() benutzen.

PS: Wer auch immer sich diese Struktur mit den inneren Klassen ausgedacht hat, hat wohl wenig praxisorientierte Programmierung im Sinn... was ist denn, wenn es weitere Items geben soll (Computerspiele, DVDs, CDs...)? Soll man dann immer die Klasse Kasse erweitern oder wie? Nee, nee... das ist einfach nur schlecht!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Vererbung?! Allgemeine Java-Themen 15
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
MiMa Vererbung und Komposition?? Allgemeine Java-Themen 38
Kirby.exe Vererbung bei Generics Allgemeine Java-Themen 7
L Vererbung Verständnis Probleme Vererbung Allgemeine Java-Themen 2
W Generics + Vererbung Allgemeine Java-Themen 47
M Vererbung mithilfe von Bluej Allgemeine Java-Themen 3
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
A Vererbung Selbstreferenzparameter Allgemeine Java-Themen 14
D Thema: Vererbung Ober-/Unterklassen Allgemeine Java-Themen 16
D Frage zu Vererbung Allgemeine Java-Themen 5
N Vererbung mit GUI Allgemeine Java-Themen 9
E Vererbung Countable mit Vererbung Allgemeine Java-Themen 6
J 2 Fragen zur Vererbung Allgemeine Java-Themen 5
T Javaklassen und vererbung Allgemeine Java-Themen 32
F Vererbung Allgemeine Java-Themen 5
Neumi5694 Vererbung Restriktive Vererbung Allgemeine Java-Themen 4
A Vererbung Übungsaufgabe Vererbung - Erstellung Klassenhierarchie Allgemeine Java-Themen 1
J Allgemeine Fragen zu Vererbung Allgemeine Java-Themen 1
kaoZ Generics und Vererbung Allgemeine Java-Themen 3
D Problem bei Vererbung abstrakter Klassen Allgemeine Java-Themen 6
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T Super Klasse Vererbung Problem :/ Allgemeine Java-Themen 10
L Unabhängige Auslieferung bei Vererbung Allgemeine Java-Themen 20
S MVC - Vererbung Allgemeine Java-Themen 4
C Enums und Vererbung Allgemeine Java-Themen 6
F Google Guice + Generics + Vererbung Allgemeine Java-Themen 5
D Unterschied Vererbung und Polymorphie? Allgemeine Java-Themen 4
K Vererbung ohne Basisklasse zu kennen Allgemeine Java-Themen 20
Da_Tebe ArrayList<xyz> Verschachtelung oder Vererbung? Allgemeine Java-Themen 6
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
M OOP PropertyChangeListener - Vererbung oder Komposition? Allgemeine Java-Themen 5
S OOP Mehrfache Vererbung von abstrakten Klassen Allgemeine Java-Themen 7
G Designfrage Vererbung ja oder nein Allgemeine Java-Themen 9
S equals - Identität ändern bei Vererbung? Allgemeine Java-Themen 5
dayaftereh Vererbung Hilfe Allgemeine Java-Themen 2
D Vererbung, Reflection und automatischer Methodenaufruf Allgemeine Java-Themen 24
A PropertyChangeListener Vererbung Allgemeine Java-Themen 4
P DefaultTreeCellRenderer Vererbung Allgemeine Java-Themen 5
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
J Vererbung bei abstrakten Klassen Allgemeine Java-Themen 2
S Vererbung: Welche Methode wird verwendet? Allgemeine Java-Themen 9
L Checkstyle: Wann ist eine Methode für Vererbung entworfen? Allgemeine Java-Themen 13
S normale vererbung als interface Allgemeine Java-Themen 2
S statische Methoden und Vererbung Allgemeine Java-Themen 6
R Vererbung - doppelte Paint-Methode Allgemeine Java-Themen 4
R Vererbung mit Interface und Abstract Allgemeine Java-Themen 3
B Vererbung bei enums ? Allgemeine Java-Themen 3
W Frage zu Vererbung / konkretes Beispiel Allgemeine Java-Themen 4
F Vererbung von SessionBeans Allgemeine Java-Themen 3
O abstract, privat, Vererbung Allgemeine Java-Themen 29
L Annotations mit Vererbung Allgemeine Java-Themen 4
M Singleton und Vererbung? Allgemeine Java-Themen 45
T Problem mit Vererbung Allgemeine Java-Themen 3
V Vererbung und Schleifen Allgemeine Java-Themen 5
C Comparable + Vererbung Funktioniert nicht? Allgemeine Java-Themen 4
A Ansatz Objektorientierung, Methoden Vererbung Allgemeine Java-Themen 2
D Listen von Generischen Typen inkl. Vererbung Allgemeine Java-Themen 2
D Zugriffsmethode nach Vererbung ändern? Allgemeine Java-Themen 5
S Vererbung in UML Allgemeine Java-Themen 3
T Nochmal Frage zu Vererbung Interfaces etc. Allgemeine Java-Themen 10
Y Gedanken zur Vererbung Allgemeine Java-Themen 7
F Vererbung, Generizität und Collections. Allgemeine Java-Themen 7
G Frage zu statischen Variablen bei Vererbung Allgemeine Java-Themen 15
S Vererbung von mehreren Klassen? Allgemeine Java-Themen 5
C enum und Vererbung Allgemeine Java-Themen 3
K Problem mit Vererbung - Kein wirklicher Nutzen. Allgemeine Java-Themen 10
G vererbung vs benutzung Allgemeine Java-Themen 7
L Vererbung klappt nicht Allgemeine Java-Themen 5
W Probleme mit Arrays und Vererbung ! Allgemeine Java-Themen 5
M vererbung einer "selbst-instanzierungs-klasse" Allgemeine Java-Themen 16
J Vererbung. Allgemeine Java-Themen 8
H Frage zur Vererbung Allgemeine Java-Themen 5
S private Instanzvaribalen bei "Innerer-Vererbung" Allgemeine Java-Themen 9
H Vererbung auch ohne erzeugung einer Instanz möglich? Allgemeine Java-Themen 3
M frage zur vererbung Allgemeine Java-Themen 12
G Generics und Vererbung. Allgemeine Java-Themen 21
M Vererbung von Hashtables Allgemeine Java-Themen 5
C dynamische Vererbung Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben