Methoden Uhr als Übungsaufgabe Klassen/Objekte

keeev

Mitglied
Moin Jungs, erstmal zu meiner Aufgabenstellung:

Es soll die Klasse "uhr" entworfen werden. Diese besteht aus den
Attributen "tag", "stunde", "minute" und "sekunde" und den
Methoden "anzeigen", "aendern", "lesen" und "stellen".
Ausserdem ist der Konstruktor bereitzustellen.

a) Die Methode "anzeigen" gibt die 4 Attribute, jeweils mit ":",
getrennt, auf Bildschirm aus.

b) In "stellen" werden die 4 uebergebenen Parameter (Tag, Stunde, Minute,
Sekunde) in die Attribute eingetragen. Die uebergebenen Parameter
sind auf den zulaessigen Wertebereich nach oben und unten zu begrenzen.

c) "lesen" gibt die Elementvariablen als Kopie zurueck (z.B. an ein
bereitgestelltes Feld).

d) "aendern" erhoeht die Zeit um eine Sekunde (und bringt, wenn noetig,
danach natuerlich die Zeit wieder in eine richtige Darstellung.
Es gibt z.B. keine 60 Sekunden !).

e) Der Konstruktor nimmt die 4 Parameter (Tag, Stunde, Minute und Sekunde)
an, stellt damit die Uhr und gibt eine Meldung aus, die aus
"Konstruktor von uhr: " und der aktuellen Uhrzeit besteht.

f) In "main" wird das Objekt "kuckuck" der Klasse "uhr" erzeugt. In einer
Endlosschleife wird dann jeweils die aktuelle Uhrzeit angezeigt und
die Sekunden um 1 erhoeht.
Die Anzeige kann ueber die Methode "anzeigen" erfolgen. Es waere aber
auch moeglich, ueber die Methode "lesen" an die private-Attribute zu
gelangen und diese dann in "main" ueber "System.out.print ..." auszu-
geben.


Jetzt hab ich zwei Dateien, sprich Uhr.java und Uhrzeit.java.

Erstmal Uhrzeit.java:

Java:
	public static void main (String [] args) {
	
	Uhr kuckuck = new Uhr("Freitag", 22, 4, 12);			// Kuckuck als Objekt von Uhr wird erstellt mit Parameter
	
	}
}

Und hier die Klasse Uhr.java:

Java:
public class Uhr {
	String tag;
	int stunde;
	int minute;
	int sekunde;
	
	void anzeige() {
	System.out.println(tag + " : " + stunde + " : " + minute + " : " + sekunde);
	}
	
	// Konstruktor von Uhr
	public Uhr (String t, int s, int min, int sek){
	tag = t;
	stunde = s;
	minute = min;
	sekunde = sek;
	System.out.println ("Konstruktor von Uhr: " + tag + " : " + stunde + " : " + minute + " : " + sekunde);
	}
}


Wie bekomm ich jetzt das mit anzeige() hin? Irgendwie verzweifel ich grad :(
 

wolfgang63

Bekanntes Mitglied
Die Methode anzeigen() hast du doch schon. Schreibe erst mal die anderen geforderten Methoden.
Zum Schluss kannst du dann die Schleife in der Mainmethode programmieren, in der du setzen() und anzeigen() aufrufst.
 

keeev

Mitglied
Also ich habs jetzt nochmal komplett von vorne aufgerollt und es funktioniert ;).
Hier mein Programm:

Java:
public class Uhrzeit {

	public static void main (String [] args) {

	Uhr kuckuck = new Uhr("Freitag", 23, 59, 56);			// Kuckuck als Objekt von Uhr mit Parameter
	for (int i=1; i>0; i++)
		{
			 try
   			 	{
       			Thread.sleep (1000l) ;
   				}
  			 catch (Exception e)
  			 	{
        		System.out.print (e) ;
    			}
			kuckuck.aendern();
			kuckuck.anzeigen();
		}
	}
}

class Uhr {
	
	String tag;
	int stunde;
	int minute;
	int sekunde;
	
		void anzeigen() {
			System.out.printf (tag + " : %02d : %02d : %02d", stunde, minute, sekunde);
			System.out.println (" ");
		}
		
		void aendern() {
			sekunde++;
			if (minute==59 && sekunde==60) { minute=0; sekunde=0; stunde++; }
			if (sekunde==60) { sekunde=0; minute++;}
			if (stunde==24) 
				{ 	stunde=0;
					if (tag=="Montag") tag="Dienstag";
					else if (tag=="Dienstag") tag="Mittwoch";
					else if (tag=="Mittwoch") tag="Donnerstag";
					else if (tag=="Donnerstag") tag="Freitag";
					else if (tag=="Samstag") tag="Sonntag";
					else if (tag=="Sonntag") tag="Montag";
					else if (tag=="Freitag") tag="Samstag";
				}
		
		}
	
		// Konstruktor der Klasse Uhr
	
		Uhr (String tagg, int stundee, int minutee, int sekundee) {
			tag = tagg;
			stunde = stundee;
			minute = minutee;
			sekunde = sekundee;
			System.out.println ("Konstruktor von uhr: " + tag + " : " + stunde + " : " + minute + " : " + sekunde);
		}
}

Gibts da irgendwelche Verbesserungsvorschläge?
 

kaoZ

Top Contributor
Jetzt rein vom organisatorischen Standpunkt aus betrachtet hat sich folgender aufbau bewährt:

Java:
1.Klassendefinition // denke ich muss nicht erwähnt werden
2.Attribute
3.Konstruktoren
3.1 ggf. Innere Klassen
4.private Methoden
4.1 package sichtbare Methoden (protected)
5.Öffentliche Methoden

bei Aufzählungen könnte man ein Enum einsetzen

Java:
public enum Wochentage{

  Montad, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag;

  private Wochentage(){
      // eventueller Code hier
  }

}

und daraus folgernd ein switch verwenden

Java:
Wochentage day = Wochentage.Montag;

switch(day){
 
case Montag:
 //do some stuff
break;
case Dienstag:
 //do other stuff
break;

usw...usw..

}

desweiteren ist sowas unnötig und unübersichtlich

Java:
 Uhr (String tagg, int stundee, int minutee, int sekundee) {
            tag = tagg;
            stunde = stundee;
            minute = minutee;
            sekunde = sekundee;
            System.out.println ("Konstruktor von uhr: " + tag + " : " + stunde + " : " + minute + " : " + sekunde);
        }

man kann dies auch folgendermaßen machen

Java:
public Uhr(String tag, int stunde, int minute, int sekunde){
  this.tag = tag;
  this.stunde = stunde;
  this.minute = minute;
  this. sekunde = sekunde;

}

dabei fungiert
Code:
this
als Zeiger auf die Attribute deiner Klasse, also deine Instanzvariable.

zudem sollten die Attribute oder auch Member deiner Klasse , insofern du Sie nur innerhalb dieser Klasse nutzt als
Code:
private
deklariert sein, um ungewollte zugriffe von außerhalb zu vermeiden.

Man könnte noch weitergehen und sagen man erstellt Uhr als abstrakte Klasse oder Interface ( z.B Timeable ) und KuckucksUhr als eine Konkrete ( realisierte ) Klasse, So wäre es möglich verschiedene Grundfunktionen die eine Uhr implementieren muss oder soll, in der Abstraktion festzulegen , und die Art wie diese Uhr letztlich funktioniert in der Unterklasse zu realisieren.

Beispiele für konkrete Implementierungen wären z.B KuckucksUhr, BinärUhr, DigitalUhr, AnalogUhr usw.usw.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Übungsaufgabe zu Klassen, Methoden ... Java Basics - Anfänger-Themen 2
A Laufzeitfehler bei Übungsaufgabe Java Basics - Anfänger-Themen 4
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
K Rundbeet Übungsaufgabe Java Basics - Anfänger-Themen 3
J Hilfe bei Übungsaufgabe Java Basics - Anfänger-Themen 17
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
H Übungsaufgabe Java Basics - Anfänger-Themen 21
K Übungsaufgabe... Verständnisproblme (java 8.191) Java Basics - Anfänger-Themen 4
H Polynome Übungsaufgabe uni Java Basics - Anfänger-Themen 49
H Übungsaufgabe algorithmen Java Basics - Anfänger-Themen 2
L Übungsaufgabe zu Schleifen Java Basics - Anfänger-Themen 7
H Frage zu Übungsaufgabe, Array Java Basics - Anfänger-Themen 7
T Übungsaufgabe Event Handling Java Basics - Anfänger-Themen 0
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
B Hilfe bei Übungsaufgabe von Freitagsrunde Java Basics - Anfänger-Themen 5
B Übungsaufgabe Java Basics - Anfänger-Themen 5
M Übungsaufgabe Problem Java Basics - Anfänger-Themen 6
N Übungsaufgabe aus Java Buch bringt Fehler. Java Basics - Anfänger-Themen 10
S Verständnisproblem einer Übungsaufgabe Java Basics - Anfänger-Themen 6
J Hilfe bei Übungsaufgabe Java Basics - Anfänger-Themen 5
D Brauche Hilfe bei Modulo (Übungsaufgabe) Java Basics - Anfänger-Themen 14
U Erste Schritte Fehler in Übungsaufgabe Java Basics - Anfänger-Themen 22
W Übungsaufgabe:Dynamische Datenstrukturen Java Basics - Anfänger-Themen 10
pg1337 Übungsaufgabe für Anfänger Java Basics - Anfänger-Themen 26
N Übungsaufgabe mit static Wert Java Basics - Anfänger-Themen 27
P Datentypen Frage zu einer Übungsaufgabe Java Basics - Anfänger-Themen 15
N Übungsaufgabe mit Interface Java Basics - Anfänger-Themen 2
F Schleifen Übungsaufgabe Java Basics - Anfänger-Themen 4
A Übungsaufgabe lösen - Problem mit true und false Java Basics - Anfänger-Themen 6
D Schiedermeier 1. Semester Übungsaufgabe Problem Java Basics - Anfänger-Themen 8
C Übungsaufgabe Java Basics - Anfänger-Themen 10
R Problem bei Übungsaufgabe Java Basics - Anfänger-Themen 7
M Hilfe bei Übungsaufgabe :'( nooby Java Basics - Anfänger-Themen 3
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
F Klassen und Pakete Projektübergreifend (Eclipse) Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben