Entwickler-Ecke
C# - Die Sprache - Objektorientiertes Programmieren (Fernseher als Objekt)
cslaie - Sa 30.11.13 15:50
Titel: Objektorientiertes Programmieren (Fernseher als Objekt)
Hallo an das Forum :) ,
ich brauche hilfe bei Objektorientieren Programmieren in C# . Ich soll ein Programm erstellen, das einen Fernseher als Objekt abbildet. Der Fernseher soll mindestens folgende Eigenschaften haben: - Lautstärke, - Programm und - eingeschaltet beziehungsweise ausgeschaltet.
Alle drei Eigenschaften sollen geändert werden können. Ich muss bei der Umsetzung folgende Vorgaben beachten: -Eine Änderung von Lautstärke und Programm soll nur dann möglich sein, wenn der Fernseher eingeschaltet ist. -den Fernseher in Ihrem Programm mindestens einmal einschalten und die Lautstärke ändern sowie das Programm. Dann denn Fernseher wieder ausschalten. -nach jeder Änderung den aktuellen Zustand des Fernsehers auf der Kon- sole ausgeben.
Ich soll nur über die Methoden der Klasse auf die Felder zugreifen. Das gilt auch für die Ausgabe der Werte.
Kleine Ansatz:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication24 {
public class Fernseher { public bool On { get { return On; } set { if (true == On) { Console.WriteLine("Fernseher ist an"); } else { Console.WriteLine("Fernseher ist aus"); } } }
private int _channel; public int Channel { get { return _channel; } set { if (On) _channel = value; } }
private int _volume; public int Volume { get { return _volume; } set { if (On) _volume = value; } }
public override string ToString() { return "Angeschaltet: " + On + ", Kanal: " + Channel + ", Lautstaerke: " + Volume;
} } }
class Program { static void Main(string[] tv) { int eingabe = 0; while (eingabe != 4) { Console.WriteLine("Was möchten Sie tuen?\n"); Console.WriteLine("[1] Fernseher Einschalten"); Console.WriteLine("[2] Lautstärke ändern"); Console.WriteLine("[3] Programm ändern"); Console.WriteLine("[4] Fernseher ausschalten"); eingabe = Convert.ToInt32(Console.ReadLine());
switch (eingabe) { case 1: break; case 2: break; case 3: break; case 4: break; } }
} } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Ralf Jansen - Sa 30.11.13 16:00
Du hast vergessen eine Frage zu deinem Code zu stellen.
Kleiner Hinweis dein Fernseher ist nicht einschaltbar.
Schau dir Implementierung von On nochmal genau an.
cslaie - Sa 30.11.13 16:08
Hallo Ralf Jansen,
ach, vor lauter Aufregung :roll: ..
Meine Frage ist (Laie Frage), kann ich auf die getter und setter Feldern auf irgendwelche weise zugreifen? So dann ich bestimmen kann zb. welche Programm und Lautstärke ich einstellen möchte.
Ich finde leider kein ähnlichen Beispiel auf dem ich mich orientieren kann zum thema Objektorientierte Programmierung.
:roll:
Ralf Jansen - Sa 30.11.13 16:32
Diese Frage verstehe ich leider nicht.
Felder sind was anderes als Properties mit getter und setter. Damit wir sprachlich zusammenkommen _channel wäre ein Feld und Channel eine Property. Channel hat einen getter und setter definiert. Und die benutzt zufällig das Feld _channel könnte Channel aber auch ganz anders machen. Das ist ein Interna der Fernseher Klasse und darf niemanden ausserhalb interessieren.
In deiner main Methode sind die Properties On, Channel und Volume von Fernseher das Einzige mit dem du arbeiten solltest. Und sobald du On richtig implementiert hast ist die gewünschte Funktionsweise in der main Methode auch leicht zu erreichen.
... Moment vielleicht habe ich deine Frage jetzt doch verstanden. Um in der main Methode auf die Properties zuzugreifen mußt du eine Instanz der Klasse Fernseher erstellen. Die Geschichte mit dem new :wink:
cslaie - Sa 07.12.13 16:08
Hallo Ralf Jansen,
hab die Aufgabe doch noch selber hingekriegt. Danke für dein Tipp! VG
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!