Eingabe des Benutzers mittels readLine()-Methode. Klappt in meinem Beispiel nicht!

Status
Nicht offen für weitere Antworten.

Gonzalez

Mitglied
Hallo,

ich bin totaler Java anfänger und schreibe gerade eine Arbeit über Java-Basics.

Jetzt sollte ich in folgendem Beispiel die Möglichkeit integrieren dass der Benutzer selbst (auf welche Art und Weise ist egal) eine Gehaltserhöhung eingeben kann

Code:
class CMitarbeiter {
	String m_name;
	String m_vorname;
	int m_gehalt;
	
	
	CMitarbeiter(String name, String vorname, int gehalt) {
		m_name = name;
		m_vorname = vorname;
		m_gehalt = gehalt;
	}
	
	void datenAusgeben() {
		System.out.println("\n");
		System.out.println("Name = " + m_name);
		System.out.println("Vorname = " + m_vorname);
		System.out.println("Gehalt = " + m_gehalt + " Euro");
	}

	void gehaltErhoehen(int erhoehung) {
		m_gehalt += erhoehung;
	}
} 

public class CMitarbeiterBeispiel {
	public static void main(String[] args) {
	//2 neue mitarbeiter instanzieren
	CMitarbeiter billy = new CMitarbeiter("Gates","Bill",3000);
	CMitarbeiter steve = new CMitarbeiter("Jobs","Steve",3000);
	
	// Daten ausgeben
	billy.datenAusgeben();
	steve.datenAusgeben();
	
	//Gehalt erhöhen
	steve.gehaltErhoehen(1500);
	
	//Zweite Ausgabe
	billy.datenAusgeben();
	steve.datenAusgeben();
	}
}

Nun hab ich mithilfe eines Buchs den Versuch gemacht mit der readLine Methode das selbst zu integrieren. Das sieht so aus (wahrscheinlich total bescheuert, sorry!)

Code:
class CMitarbeiter {
	String m_name;
	String m_vorname;
	int m_gehalt;
	
	

	CMitarbeiter(String name, String vorname, int gehalt) {
		m_name = name;
		m_vorname = vorname;
		m_gehalt = gehalt;
	}
	
	void datenAusgeben() {
		System.out.println("\n");
		System.out.println("Name = " + m_name);
		System.out.println("Vorname = " + m_vorname);
		System.out.println("Gehalt = " + m_gehalt + " Euro");
	}

	void gehaltErhoehen(int erhoehung) {
		m_gehalt += erhoehung;
	}
} 

import java.io.Console;


public class CMitarbeiterBeispiel_1 {
	public static void main(String[] args) {
		Console cons = System.console();
		cons.printf("\n");
		
	String eingabe = cons.readLine();
	
	cons.printf("Geben Sie die gewünschte Gehaltserhöhung ein");
		String eingabe = cons.readLine();
		int erhoehung = Integer.parseInt(eingabe);

	
	
	//2 neue mitarbeiter instanzieren
	CMitarbeiter billy = new CMitarbeiter("Gates","Bill",3000);
	CMitarbeiter steve = new CMitarbeiter("Jobs","Steve",3000);
	
	
	// Daten ausgeben
	billy.datenAusgeben();
	steve.datenAusgeben();
	
	//Gehalt erhöhen
	steve.gehaltErhoehen(erhoehung);
	
	//Zweite Ausgabe
	billy.datenAusgeben();
	steve.datenAusgeben();
	}
}

Ich bekomme nun folgenden Fehler angezeigt:

CMitarbeiterBeispiel_1:26: class, interface or enum expected
import java.io.Console;

Könnt ihr mir sagen was dieser Fehler zu bedeuten hat? Und ist das ansonsten möglich die Erhoehung so zu gestalten oder muss ich das Beispiel komplett anders strukturieren?

Ich freue mich über jede Antwort! Danke vielmals!
 
WOW toll! Es funktioniert!! Es kommt also erst die Aufforderung man solle die Erhöhung eingeben und dann kommt in der zweiten Ausgabe der richtige Betrag!

Was haltet ihr von der Umsetzung? Akzeptabel oder wärt ihr das ganze anders angegangen?

Auf jeden Fall ein riesiges Dankeschön, wahrscheinlich hätt ich mir an diesem kleinen Fehler noch ewig die Zähne ausgebissen!
 
Das sieht soweit gut aus. Da gabs hier schon weitaus schlimmere Sachen 🙂

Eine Sache zu den Variablennamen deiner CMitarbeiter Klasse.
Ist nur ne Kleinigkeit, aber ich halte es für logischer die Instanzvariablen nicht "m_vorname", sondern einfach nur "vorname" zu nennen, da vorname ja sowieso eine Variable der Klasse Mitarbeiter ist. Es ist wie ich finde dann eher überflüssig extra noch ein "m_" davorzuschreiben.
Aber wie gesagt eher nebensächlich.
 
und wenn schon wärs mVorname, grundsätzlich:
Klasse: IchBinEinBeispiel
Methode: ichBinEinBeispiel
Variable: ichBinEinBeispiel
Package: ichbineinbeispiel
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben