Autor Beitrag
cslaie
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 30.11.13 15:50 
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:
ausblenden volle Höhe 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;
            
            // Schleife
            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 user profile iconChristian S.: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 07.12.13 16:08 
Hallo Ralf Jansen,

hab die Aufgabe doch noch selber hingekriegt. Danke für dein Tipp! VG