statische methoden und throws exception

Status
Nicht offen für weitere Antworten.

kb

Mitglied
hi! ich hab eine InteractiveIO Klasse um einfach was zu schreiben oder zu lesen.

jetz nut ich die tolle klasse in meiner main methode der eigentlichen klasse:


eclipise bringt mir die meldung:
Der Zugriff auf die statische Methode write(String) aus dem Typ InteractiveIO sollte auf statischem
Weg erfolgen.

ich vermut schon das ich das nicht ganz verstanden hab, mit dem statischen zeugs .. also statisch ist eine methode wenn sie zu einer klasse gehört, aber nicht zu einem objekt. wenn ich jetzt das static weglasse, bei den methoden in der io- klasse funktioniert es nichtmehr.

Damit komme ich auch gleich schon zur zweiten frage: was bedeutet dieses Throws Exception, manchmal au Throws IOException? unser lehrer hat das nur im unterricht hingeschrieben "darauf gehen wir später ein".


jetz code ich halt irgendwelches java zeug per try and error und verstehs net vollständig, und bin deshalb auch nicht zufrieden.
ich kann php im schlaf, und c++ hab ich auch einige zeit mal programiert, aber hier häng ich irgendwie, und möchte es verstanden haben.




anwendung: (gekürzt)
Code:
class Pnutzen
{
	public static void main(String[] Args) throws Exception
	{
		InteractiveIO io;
		io = new InteractiveIO();
..
		io.write("Person angelegt.");
		io.write("");
	
	}
}


die io - klasse:
Code:
class InteractiveIO {
	public static void write(String s)	{
		writeAndFlush(s);
	}
	
	public static String promptAndRead(String s) throws Exception	{
		writeAndFlush(s);
		return br.readLine();
	}
	
	public static float readFloat(String s) throws Exception{
		return Float.parseFloat(promptAndRead(s).trim());
	}
	
	public static double readDouble(String s) throws Exception{
		return Double.parseDouble(promptAndRead(s).trim());
	}
	
	public static int readInt (String s) throws Exception {
		return Integer.parseInt(promptAndRead(s).trim());
	}
	
	public static long readLong (String s) throws Exception {
		return Long.parseLong (promptAndRead(s).trim());
	}
	
	public static BigInteger readBigInt(String s) throws Exception {
		String str = promptAndRead(s).trim();
		BigInteger x;
		x = new BigInteger(str);
		return x;
	}
	
	public static BigDecimal readBigDecimal(String s) throws Exception {
		String str = promptAndRead(s).trim();
		BigDecimal x;
		x = new BigDecimal(str);
		return x;
	}
	
	private static void writeAndFlush(String s)	{
		System.out.println(s);
		System.out.flush();
	}
	
	
	private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));;
}
 
S

SlaterB

Gast
InteractiveIO io;
io = new InteractiveIO();
..
io.write("Person angelegt.");

write ist eine statische Operation der Klasse,
sollte also direkt an der Klasse aufgerufen werden:
InteractiveIO.write("Person angelegt.");

so wie du das gemacht hast denkt man die Operation gehört zu einem Objekt,
würde also bei Objekt was bewirken, evtl. bei verschiedenen Objekten unterschiedlich reagieren,
das ist aber nicht der Fall, es wird die Klassenoperation durchgeführt,

dein
InteractiveIO io;
io = new InteractiveIO();
kann komplett weg

> wenn ich jetzt das static weglasse, bei den methoden in der io- klasse funktioniert es nichtmehr.

wenn du Fehler korrekt beschreibst, dann man dir auch weiterhelfen,
allgemein kann man fast alles nicht-statisch lösen,

in deinem Fall müsste es wohl reichen, ALLE 'static'-Vorkommen in der Klasse zu entfernen,
also insbesondere bei BufferedReader br und den anderen Operationen,
aber wenn da auf ein anderes statisches Objekt wie System.in
zugegriffen wird, dann lasse es lieber so wie es ist

----------
in PHP gibt es auch try/ catch Exception oder nicht?

eine Operation teilt mit 'throw Exception' mit, dass es eine Exception wirft, die der Aufrufer dann abfangen muss,

wenn dir Exception insgesamt nix sagt, dann ist das zu lang zum erklären,
steht in jedem Lehrbuch auf 2-20 Seiten
 

hupfdule

Top Contributor
kb hat gesagt.:
eclipise bringt mir die meldung:
Der Zugriff auf die statische Methode write(String) aus dem Typ InteractiveIO sollte auf statischem
Weg erfolgen.
Das ist ja nur ein Warnung. Mir ist auch kein Fall bekannt, wo das tatsächlich ein Problem darstellen würde. Du kannst das aber leicht ändern, indem du statt
Code:
io.write(..)
Code:
InteractiveIO.write(..)
schreibst. Damit greifst du statisch darauf zu.


Damit komme ich auch gleich schon zur zweiten frage: was bedeutet dieses Throws Exception, manchmal au Throws IOException?
Das heißt, dass diese Methode etwas tut, was dazu führen kann, dass die entsprechende Exception auftritt. Diese wird dann geworfen und die aufrufende Methode ist gezwungen diese zu behandeln (entweder per try/catch oder indem sie sie weiter wirft). BTW: throws Exception sollte eigentlich nie dastehen, da alle Exceptions von diese Klasse abgeleitet sind. Man sollte immer die konkreten Exceptions werfen und das auch in der Signatur so hinschreiben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C nicht statische Methoden Java Basics - Anfänger-Themen 4
D statische generische Methoden Java Basics - Anfänger-Themen 3
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
S Zufallszahl (Statische Attribute und Methoden) Java Basics - Anfänger-Themen 10
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
A Statische Variable in Methoden Java Basics - Anfänger-Themen 7
M Wann statische Methoden/Attribute? Java Basics - Anfänger-Themen 2
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
J statische Methoden auf eine LinkedList initialisieren? Java Basics - Anfänger-Themen 5
J Unterschied zwischen statische und nicht statische Methoden? Java Basics - Anfänger-Themen 14
M Statische Methoden Java Basics - Anfänger-Themen 22
F Generische Typen auch für statische Methoden? Java Basics - Anfänger-Themen 13
A Stilfrage: statische Methoden und Attribute auf jeden Fall verhindern? Java Basics - Anfänger-Themen 5
H statische methoden und sichtbarkeit Java Basics - Anfänger-Themen 13
nadoria statische Methoden (Klassenmethoden) Java Basics - Anfänger-Themen 3
G Statische Methoden? Java Basics - Anfänger-Themen 2
N Unterschied statische Attribute u. Methoden <-> objekt Java Basics - Anfänger-Themen 4
S Statische Felder - statische Methoden Java Basics - Anfänger-Themen 2
D Statische und Nicht-Statische Methoden Java Basics - Anfänger-Themen 7
K Statische Methoden!? Java Basics - Anfänger-Themen 8
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
S Klassen statische Objekterzeugung vor Konstruktoraufruf??? Java Basics - Anfänger-Themen 6
Queiser Nicht statische Klassen Java Basics - Anfänger-Themen 6
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
N Auf statische Methode zugreufen Java Basics - Anfänger-Themen 9
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
D Statische Objekte mit variablem Parameter Java Basics - Anfänger-Themen 1
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
F Statische Klasse => Flaschenhals? Java Basics - Anfänger-Themen 10
T Statische Arrays von Objekten Java Basics - Anfänger-Themen 2
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
S Datentypen nicht lineare STATISCHE Datenstruktur? Java Basics - Anfänger-Themen 10
E statische Variable ändert sich Java Basics - Anfänger-Themen 7
P Klassen statische oder dynamische(?) Klasse Java Basics - Anfänger-Themen 3
A Nicht-statische Methode in einer statischen aufrufen Java Basics - Anfänger-Themen 10
A statische Arraylist Java Basics - Anfänger-Themen 6
Q Variablen Statische Variablen Java Basics - Anfänger-Themen 8
V OOP Statische Klassen-Attribute vererben Java Basics - Anfänger-Themen 4
K Statische Bindung Java Basics - Anfänger-Themen 6
B dynamische/statische Typen Java Basics - Anfänger-Themen 2
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
S statische Methode nebenläufig Java Basics - Anfänger-Themen 2
R Aufruf statische Methode Java Basics - Anfänger-Themen 7
C Relativer Pfad - Statische Methode Java Basics - Anfänger-Themen 6
A Statische Methode "vererben" - Zwang durch annotation processor Java Basics - Anfänger-Themen 10
sqsh statische jlabels dynamisch verwalten Java Basics - Anfänger-Themen 2
S Statische Klassen/ Singleton Java Basics - Anfänger-Themen 13
E Statische Member können nicht vererbt werden? Java Basics - Anfänger-Themen 10
B statische Variable Java Basics - Anfänger-Themen 10
M Statische und nicht-statische Funktionen: Desktop.browse(uri); Java Basics - Anfänger-Themen 4
A Stilfrage: statische Variable mit Instanz der gleichen Klasse Java Basics - Anfänger-Themen 8
H Statische generische Methode Java Basics - Anfänger-Themen 2
A statische Attribute: Vererbung und Zugriff darauf Java Basics - Anfänger-Themen 15
hdi Observer als statische Klasse ? Java Basics - Anfänger-Themen 2
hdi statische synchronisation Java Basics - Anfänger-Themen 6
G statische ArrayList? Java Basics - Anfänger-Themen 8
K Statische Variablen von Objekten im Array Java Basics - Anfänger-Themen 15
K nicht-statische Methode aufrufen Java Basics - Anfänger-Themen 3
S statische variable initialisieren mit exception Java Basics - Anfänger-Themen 2
G statische Variable zugreifen bzw. setzen Java Basics - Anfänger-Themen 6
T in statischem Kontext auf nicht statische Variable beziehen Java Basics - Anfänger-Themen 5
M Statische Funktion Java Basics - Anfänger-Themen 2
M öffentliche nicht-statische Funktion fremder Klasse ausführn Java Basics - Anfänger-Themen 16
C args[] als statische Variablen speicher oder wie? Java Basics - Anfänger-Themen 12
P nicht statische methode instantiieren Java Basics - Anfänger-Themen 7
K statische variablen und methode Java Basics - Anfänger-Themen 3
H Was ist nocheinmal eine statische Klasse? Java Basics - Anfänger-Themen 6
H statische, dynamischer Typ von Variablen Java Basics - Anfänger-Themen 1
M Konstruktor eine statische Methode? Java Basics - Anfänger-Themen 9
H statische,dynamische Bindung Java Basics - Anfänger-Themen 4
O nicht-statische Inhalte auf statische Inhalte verweisen Java Basics - Anfänger-Themen 19
M wann statische klassen? Java Basics - Anfänger-Themen 14
U statische Variablen Java Basics - Anfänger-Themen 12
F Statische Methode - Nicht Statische Methode Java Basics - Anfänger-Themen 10
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
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 Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben