Verständnisfragen zum Aufbau

Tweaker

Mitglied
Hallo zusammen, erstmal will ich sagen guten Abend und schön das ich da bin bei euch :)

Ich habe ein paar Fragen, bei denen ich evtl. Hilfe brauche. Eig. sind es nur Verständnisfragen. Also nichts großes

1. Wenn ich ein Projekt habe, Projekt nenn ich jetzt mal Fernseher
hier gibt es ja dann die .java in der ich die Main methode habe zum ausführen des ganzen.
Ist es klug verschiedene Eigenschaften dann jeweils in eine .java zu schreiben, also dann Programme.java
Empfang.java oder soll ich alles in eine .java schreiben? (So kenn und mach ich es bis jetzt, will nur fragen wie und ob das dann funktioniert), wenn das klappt, wie binde ich das ein? Ich weiß das wenn ich alles in eine .java schreiben würde und diese Allgemein.java nennen würde ja mit Allgemein lala = new Allgemein(); das mache und dann alles von dort benutzt wird.

Wenn ich also mehrere .java habe wie binde ich die ein?:bloed:

2. wünsch ich euch einen schönen rest Sonntag
 

njans

Top Contributor
Alles in eine Klasse zu packen ist das, was man auf jeden Fal vermeiden sollte. Gott-Klassen sind nicht flexibel, nicht austauschbar und nur schwierig anpassbar. Lose Kopplung und hohe Kohäsion sind die Stichworte.
Wie man das macht? Du machst einfach Klassen, die spezielle Aufgaben und Einsatzgebiete haben.
Objekte dienen als Komponenten (nicht paradigmatisch gemeint) und können zusammengesetzt werden. So kümmert sich ein Objekt um die Darstellung auf dem Fernseher, ein anderes um die Eingabe von Programmen, ein anderes reagiert auf die Fernbedienung. Wiederum ein anderes wandelt das Eingangssignal in Bilder um.
 

Tweaker

Mitglied
Hallo,

okay, vielen dank, dann denke ich habe ich das Prinzip soweit verstanden. Mir ist eben auch eingefallen das ist wie wenn ich einen Scanner setze oder so etwas.

Nun habe ich noch eine Frage die mein Verständnis dann komplett machen würde.

Ich nehme wieder den Fernseher als Beispiel, weil mir kein anderes einfällt(natürlich stark vereinfacht)
Ich hoffe ich stelle die Frage nicht zu kompliziert
Fernbedienung:
Java:
import java.util.Scanner;

public class Fernbedienung {
	int programm; // die Variable vom Programm
	
	public Fernbedienung(int programm) {
		this.programm = programm;
	}
	public int getProgramm() {
		return programm;
	}
	public void setProgramm(int programm) {
		this.programm = programm;
	}
	
	public void Senderwahl(){ //Hier wird ja festgelegt welcher Sender gewählt wird!
		Scanner scan = new Scanner (System.in);
		programm = scan.nextInt();
	}

Empfang:
Java:
public class Empfang {
// Muss ich hier die Variable int programm wieder deklarieren? oder macht das keinen Sinn, muss ich diese wenn ich sie hier brauche anders einbinden?
	
}

Fernseher
Java:
public class Main {

	public static void main(String[] args) {
		Fernbedienung beispiel = new Fernbedienung();
Empfang empfang = new Empfang();
		beispiel.Senderwahl();

	}

}

hab jetzt einfach mal schnell was gemacht um die Frage besser zu stellen, in den Kommentaren direkt im Code steht die Frage.
Auch hier wieder: Muss ich eine Variable die ich in "Fernbedienung.java" deklariert habe wieder in Empfang deklarieren, oder wie kann ich darauf zugreifen? Ich habe da irgendwie eine kleine Denkblockade

Edit: Ja Denkblockade-.- ich hab sogar die falsche Frage gestellt.
Mir fehlt en wenig die Logik, wenn ich in Fernbedienung etwas festlege und das passiert ja alles in der Main, kann dann einfach Empfang, auch mit der Variable arbeiten? normal doch nicht. Aber wie leg ich das fest dass das funktioniert?
 
Zuletzt bearbeitet:

njans

Top Contributor
ersteinmal würde ich überlegen, dass du das aktuelel Programm nicht in der Fernbedienung speichern solltest, sondern im Fernseher. Die Fernbedienung muss dann nur ein Programm an diesen senden.
Hier kann man entweder globale Konstanten nehmen
Java:
public static int channelOne = 1;
oder es über eine Indirekte Schnittstelle machen (einfach Zaheln übergeben und der Fernseher übernimmt dann das interpretieren)
oder du machst es mittels Enums
Java:
public Enum Channel{
CHANNEL_ONE, CHANNEL_TWO, //... 
}
 

Tweaker

Mitglied
Okay, also mit deinem ersten Teil hast du mir sehr geholfen, das hat fast erklärt was ich gefragt habe!:)

Nun ist es wie immer, wenn man etwas neues gelernt hat, steht man vor dem nächsten Problem, was auch nur wieder ne kleine Erklärung ist.

Java:
import java.util.Scanner;

public class Main {
private static int programm; // die Variable vom Programm
	
	public static int getProgramm() {
		return programm;
	}


	public static void setProgramm(int programm) {
		Main.programm = programm;
	}

	
	public void Senderwahl(){ 					// Jetzt muss ich das hier ja aus der Main entfernen und in die Fernbedienung machen?
		Scanner scan = new Scanner (System.in);
		setProgramm(scan.nextInt());
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}


}

Frage auch wieder als Kommentar und hier: Dieses Void muss ja dann in die Fernbedienung.java, aber wie kann ich die Variablen von Main zu Fernbedienung und zurück schicken?
Muss ich dann in Fernbedienung.java die Variable "main.programm" oder so holen? wenn ich in der FB. Klasse diese Variable ja verändern möchte und sie in main so speichern will

Danke wiedermal für die Hilfe
 

njans

Top Contributor
Du solltest deine Methoden nicht static machen, sondern an ein Objekt packen. Das sind z.B. Methoden die ich bei der Fernbedienung erwarten würde. Das ist immerhin die logische Schnittstelle, wenn ein Benutzter den TV bedienen will.

Generell gibt es für dein Problem der referenzierung folgende Lösungen:
Singelton-Instances (eher unschön und nur im Notfall nutzen)
Java:
public class MyTestClass{
  private static final MyTestClass instance = new MyTestClass();

public static MyTestClass getInstance(){
  return instance;
}
}

oder man sorgt direkt dafür, dass ein Objekt bekannt ist:
Java:
public class MyTestFernbedienung{

private Fernseher fernseher;
 
public MyTestFernbedienung(Fernseher reference){
 fernseher= reference;
}

public void setProgramm(int programm){
  fernseher.changeProgramto(programm);
}

}
 

Tweaker

Mitglied
Ich glaube ich hab jetzt verstanden wie ich das regeln muss! :) Die Danke kommen sobald ich genug Beiträge habe um sie zu versenden. Wenn es noch ein Problem gibt werde ich mir die Freiheit nehmen das zu teilen :p

Dankeschön!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S TableView Items werden nicht angezeigt (+Verständnisfragen) Java Basics - Anfänger-Themen 15
B Code Verständnisfragen - FLoyd Warshall Algorithmus Java Basics - Anfänger-Themen 1
J Verständnisfragen zu dem Thema Objekten Java Basics - Anfänger-Themen 7
H Erste Schritte Verständnisfragen Java Basics - Anfänger-Themen 6
J 2 reine Verständnisfragen Java Basics - Anfänger-Themen 9
S Verständnisfragen Probleme Java Basics - Anfänger-Themen 7
E Verständnisfragen zu HashMaps und Sets Java Basics - Anfänger-Themen 8
C Array - Ein paar Verständnisfragen Java Basics - Anfänger-Themen 9
N OOP Streckenberechung OOP Verständnisfragen Java Basics - Anfänger-Themen 2
G Verständnisfragen zu ADT Array Java Basics - Anfänger-Themen 6
S Verständnisfragen / Textausgabe (Java Applets) Java Basics - Anfänger-Themen 4
Y Verständnisfragen zu GC sowie allgm Fragen zu Programmierung Java Basics - Anfänger-Themen 2
D 2 Verständnisfragen zu Threads und Runtime Java Basics - Anfänger-Themen 5
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
1 Erste Schritte Aufbau Java Basics - Anfänger-Themen 7
D regex Aufbau Frage Java Basics - Anfänger-Themen 4
R Theoretischer aufbau einer Messenger App? Java Basics - Anfänger-Themen 10
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
R Erste Schritte Grundsätzlicher Aufbau Java Basics - Anfänger-Themen 127
T Java Projekt aufbau Java Basics - Anfänger-Themen 5
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
A System.out.println() - Aufbau Java Basics - Anfänger-Themen 1
T System.out.print : Frage zu Aufbau Java Basics - Anfänger-Themen 4
P Systematischer Aufbau einer Klasse Java Basics - Anfänger-Themen 6
M Aufbau der Klassenbibliothek und Referenzvariable Java Basics - Anfänger-Themen 5
D Klassen Aufbau Kartenspiel Java Basics - Anfänger-Themen 20
S DateiSuche - Aufbau der SuFu Java Basics - Anfänger-Themen 2
A Jtree Aufbau Java Basics - Anfänger-Themen 5
T Desktop Anwendung Aufbau Java Basics - Anfänger-Themen 5
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9
G Aufbau MVC-Pattern Java Basics - Anfänger-Themen 6
G Aufbau Paketstruktur Java Basics - Anfänger-Themen 3
J Tutorials oder Sourcen über den Aufbau kleinerer Apps Java Basics - Anfänger-Themen 2
B Klasse nach Aufbau und Struktur checken? Java Basics - Anfänger-Themen 15
B Aufbau eines Programms Java Basics - Anfänger-Themen 10
J Aufbau von Klassen und zugriff auf alle Variablen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben