Zugriff auf andere Methoden

Zweifaenger

Mitglied
Hallo zusammen,

ich möchte mit (Paket.Klasse.Methode) objekte.artikel.entfernen() auf die Methode "verbinden()" der Klasse "verbindung" aus dem Paket "mysql" zugreifen.
Dies wollte ich folgendermaßen realisieren:

Java:
mysql.verbindung.verbinden();

Dann bekomm ich jedoch Ärger und soll die Methode "verbinden" statisch machen. Kann mir jemand erklären warum, und wie ich dies am besten löse?

Gruß Zweifaenger
 
Zuletzt bearbeitet:
Weil "verbindung" eine Klasse ist entweder bietet diese Klasse statische Methoden an oder du musst zuerst ein Objekt dieser Klasse erzeugen und kannst dann von diesem Objekt die Methode aufrufen.

Was ich deinen Beiträgen entnehmen kann hast du eine große Lücke was die objektorientierte Programmierung (OOP) angeht. Es fehlen außerdem noch Grundlagen!
 
Weil "verbindung" eine Klasse ist entweder bietet diese Klasse statische Methoden an oder du musst zuerst ein Objekt dieser Klasse erzeugen und kannst dann von diesem Objekt die Methode aufrufen.
Kann ich denn in jedem Objekt eine neue Verbindung erzeugen oder führt das zu Problemen?

Würde dies dann wie folgt umsetzen:
Java:
Verbindung v = new mysql.Verbindung();

Java:
v.verbinden();


Was ich deinen Beiträgen entnehmen kann hast du eine große Lücke was die objektorientierte Programmierung (OOP) angeht. Es fehlen außerdem noch Grundlagen!
Dafür habe ich mir Bücher geholt die ich nach und nach durchgehe
 
Hallo Zweifaenger!

Kann ich denn in jedem Objekt eine neue Verbindung erzeugen oder führt das zu Problemen?
Ich glaube, ich spreche nicht nur für mich selbst, wenn ich an dieser Stelle einfach mal behaupte, dass wir viel zu wenig Erklärung bzw. Code von deinem Programm haben. Du müsstest vielleicht etwas präziser erläutern, was du erreichen willst, und wo genau dein Problem liegt.

Mit freundlichen Grüßen
Xelsarion
 
Kann ich denn in jedem Objekt eine neue Verbindung erzeugen oder führt das zu Problemen?

Theoretisch ja, wenn du aber die Verbindung wieder zu schließen wird es irgendwann ab Objekt X Probleme geben 😉

Außerdem wirst du vorerst nie mehr als eine brauchen, daher ist es ratsam 1x ein Objekt der Klasse Verbindung zu erstellen und das in den anderen Klassen zu Benutzen. (setter Methoden)
Immer neue Objekte erzeugen kostet viel Zeit. (wird erst bei größeren Programmen dann kritisch, aber besser früh üben/lernen als nachher dann die Probleme zu haben)

Dafür habe ich mir Bücher geholt die ich nach und nach durchgehe

In Anlehnung an deinen anderen Thread (www.java-forum.org/datenbankprogrammierung/165110-shopsystem-mysql-java-new-post.html) solltest du dich zuerst mit den Grundlagen beschäftigten, diese üben und kleine Konsolenprogramme schreiben bevor du mit Datenbanken, UI usw. anfängst.
 
Zuletzt bearbeitet:
Theoretisch ja, wenn du aber die Verbindung wieder zu schließen wird es irgendwann ab Objekt X Probleme geben 😉

Außerdem wirst du vorerst nie mehr als eine brauchen, daher ist es ratsam 1x ein Objekt der Klasse Verbindung zu erstellen und das in den anderen Klassen zu Benutzen. (setter Methoden)
Immer neue Objekte erzeugen kostet viel Zeit. (wird erst bei größeren Programmen dann kritisch, aber besser früh üben/lernen als nachher dann die Probleme zu haben)

Ist damit gemeint dass ich die Verbindung anstatt zum Beispiel in der Klasse Artikel im Hauptprogramm erzeuge und dann mit den verschiedenen Klassen darauf zugreife? Falls ja, wie kann ich diese dann aufrufen?


In Anlehnung an deinen anderen Thread (www.java-forum.org/datenbankprogrammierung/165110-shopsystem-mysql-java-new-post.html) solltest du dich zuerst mit den Grundlagen beschäftigten, diese üben und kleine Konsolenprogramme schreiben bevor du mit Datenbanken, UI usw. anfängst.

Die Möglichkeit habe ich leider nicht, da dieses Projekt innerhalb des nächsten Monats fertigen werden muss.
 
Ist damit gemeint dass ich die Verbindung anstatt zum Beispiel in der Klasse Artikel im Hauptprogramm erzeuge und dann mit den verschiedenen Klassen darauf zugreife? Falls ja, wie kann ich diese dann aufrufen?

Ja. Nehmen wir statt der Klasse Artikel vielleicht besser die Klasse "Film".
Diese Klasse "Film" dient nur zum Kapseln der Daten (Filmlänge, Genre, Titel, ID, Veröffentlichung, Beschreibung, ....). Aber in dieser Klasse hat die "Verbindung" rein gar nichts verloren.
Jein ... die Verbindung sollte an einer Stelle kreiert werden wo da im Endeffekt sein wird kommt ganz auf dich drauf an 😉

Wie oben schon angemerkt: Grundlagen! Einfach in der Klasse ein Attribut vom entsprechenden Typ hinzufügen und per setter Methode das Objekt übergeben.

In diesem Zusammenhang solltest du dir das DAO Pattern anschauen.

Die Möglichkeit habe ich leider nicht, da dieses Projekt innerhalb des nächsten Monats fertigen werden muss.

Da kann ich nur viel Glück wünschen und hoffen das es am Ende nicht darauf ankommt wieder der Code bzw. das Programm aufgebaut ist 🙂
 
Wie oben schon angemerkt: Grundlagen! Einfach in der Klasse ein Attribut vom entsprechenden Typ hinzufügen und per setter Methode das Objekt übergeben.


Dazu nochmal eine Frage, irgendwie komme ich nicht drauf wie das umgesetzt werden soll. Könnte mir das jemand am folgenden Code einmal vor machen?

Java:
import gui.Konsole;


public class moviestore {

	public static void main(String[] args) 
	{
		Konsole k = new Konsole();
		k.aktionHinzufuegen("Startpanel geöffnet!");
		
	}

	public Konsole getKonsole()
	{
		return k;
	}
}


Ich möchte aus irgendeiner anderen Klasse auf die Methode "aktionHinzufuegen(String)" von der Konsole zugreifen.

Vielen Dank
 
Ich möchte aus irgendeiner anderen Klasse auf die Methode "aktionHinzufuegen(String)" von der Konsole zugreifen

Dann benötigst du dort wo du die Methode "aktionHinzufuegen(String)" aufrufen willst ein Objekt der Klasse "Konsole".
Wie du das Objekt bekommst ist eine andere Sache .... entweder erstellst du es dir, oder du lässt es dir per Parameter oder setter Methode übergeben.
 
Nur mal so am Rande.

Du hast es in 14 Tagen jetzt nicht geschafft dir die notwendigen Grundlagen des OOP anzueignen. Wie bitte willst du in weiteren 14 Tagen ein komplettes Shopsystem fertig bekommen, dass danach auch noch sicher genug ist, dass nicht jeder Dummhacker das Dingen in 5minuten zerlegt?

Sorry aber ein wenig objektive Selbsteinschätzung wäre sicherlich sinnvoll. Für das was Du da machen willst, braucht es mindestens 3-5 Jahre Erfahrung. Das macht man nicht mal eben so.

Nichts für ungut

Claus
 
Woanders wurde mir mit einem Wort geantwortet: singleton pattern

Hab ich mir angeeignet und hat meine Probleme wunderbar gelöst 😉

Das System muss nicht sonderbar sicher oder sonst irgendwas sein, sondern einfach nur zeigen was mit einer Datenbank möglich ist. Es wird auch später nirgends eingesetzt, sondern dient lediglich als Beispiel in meiner Facharbeit
 
Woanders wurde mir mit einem Wort geantwortet: singleton pattern

Sind aber zwei Wörter :bae:

Hab ich mir angeeignet und hat meine Probleme wunderbar gelöst 😉

Das "Singleton Pattern" ist aber eine schlechte Art und Weise solche Probleme zu lösen. (Auch wenn es für jetzt nicht wichtig ist)

...... sondern einfach nur zeigen was mit einer Datenbank möglich ist. Es wird auch später nirgends eingesetzt, sondern dient lediglich als Beispiel in meiner Facharbeit

Mit MS Access hättest du dir einfach ein paar Formulare zusammenklicken können
 

Zurück
Oben