java anfänger hat fragen zu seinem code ;)

Mysticman

Ensign
Registriert
Mai 2004
Beiträge
129
Code:
public class studentbeispiel
{
public static void main(String[] args)
{
student Florian = new student("Florian","Hoffmann","Finkenweg",29364,"Langlingen",23,2006,2006,1);
Florian.Datenausgeben();
Florian.fachsemester();
Florian.altererhoehen(Cool;
Florian.fachsemester();
Florian.minderjaehrig(1983);
Florian.semesterbeschreibung();
Florian.Datenausgeben();
}
}
class student //Class Student
{
String Vorname;
String Nachname;
String Straße;
int PLZ;
String Wohnort;
int Alter;
int Studienanfang;
int Jahrjetzt;
int Semestername;
int fachsemester;
boolean minderjaehrig;
String semesterbeschreibung;
student( String Vname, String Nname, String straße, int plz, String wort, int alter,int studienanfang,int jahrjetzt,
int semestername)//Der Konstruktor student
{
Vorname = Vname;
Nachname=Nname;
Straße=straße;
PLZ=plz;
Wohnort=wort;
Alter=alter;
Studienanfang=studienanfang;
Jahrjetzt=jahrjetzt;
Semestername=semestername;
}
String adresseausgeben(int Hausnummer) //Methode die zum Ausgeben und speichern der Daten benutzt wird
{
return Vorname+ ", " +Nachname+ ", " +Straße+" " +Hausnummer+", \n Alter: " +Alter;
}

int altererhoehen(int erhoehung)//Mit der Methode wird das Alter erhöht!
{
return Alter += erhoehung;
}
int alterverfaelschen(int x)
{
Alter = Alter + 2*x;
return Alter;
}
int fachsemester()
{
int jahre = Jahrjetzt - Studienanfang;
return jahre *2 +Semestername;
}
boolean minderjaehrig(int gebjahr)
{
if (Jahrjetzt - gebjahr < 1Cool
return true;
else return false;
}
String semesterbeschreibung()
{
if (Semestername == 0)
return "Sommersemester";
else
return "Wintersemester";
}
void Datenausgeben() // hier werden nur die Daten ausgegeben!
{
System.out.println("Vorname: " +Vorname);
System.out.println("Nachname: " +Nachname);
System.out.println("Straße: " +Straße);
System.out.println("PLZ: " +PLZ);
System.out.println("Wohnort: " +Wohnort);
System.out.println("Alter: " +Alter);
System.out.println("Studienanfang: " +Studienanfang);
System.out.println("Aktuelles Jarh: " +Jahrjetzt);
System.out.println("Semesterzeit: " +Semestername);
System.out.println("FachSemester: "+fachsemester);
System.out.println("Semesterbeschreibung: "+semesterbeschreibung);
System.out.println("unter 18: "+minderjaehrig+"\n");
}
}
alsooo:

wieso muss ich die methodennamen mit in die classendefinition schreiben,damit ich dann auch nen wert beim ausgeben bekommen?
denn wenn ich die PUBLIC CLASS STUDENTBEISPIEL weglasse und das in dem interactionsfenster manuell mache, kriege ich bei jeder returnmethode einen wert ausgegeben. will ich das aber net so haben,muss ich den methodennamen mit in die Classe schreiben Sad, wieso?

2.frage: wieso geht diese methodee nicht?

if (Semestername == 0)
return "Sommersemester";
else
return "Wintersemester";
}

wenn ich das programm unter dr.java laufen lasse, gibt er mit den wert NULL aus Sad
 
Zuletzt bearbeitet von einem Moderator: (Mehrfachpost, bitte künftig die Regeln beachten!)
eine frage: mit welchen proggi haste dat geschrieben?
ich lerne auch grad java in der schule und wir benutzen BlueJ.
zu deiner 2. Frage-> ich würde das mal versuchen:

if(semestername ==0)
{System.out.println ("Sommersemester");
}
else
{System.out.println ("Wintersemester"):
}
 
mit Dr.Java auf auf elementary level , also ohne hilfestellungen!
wir können zw. eclipse, dr.java + bluej wählen :)

hm ich probier es aus,aber bei den andern return-befehlen hat es ja auch hingehaun!
 
Also 1. soll wohl bei
Code:
Florian.altererhoehen(Cool;
und
Code:
if (Jahrjetzt - gebjahr < 1Cool
Cool eine schließende Klammer sein. :freak:

2. führst du den Befehl Florian.semesterbeschreibung(); aus. Allerdings macht diese Methode nichts, außer "Wintersemester" oder "Sommersemester" zurückgeben. Nur mit diesem Rückgabewert machst du nichts. :freaky:

wieso muss ich die methodennamen mit in die classendefinition schreiben,damit ich dann auch nen wert beim ausgeben bekommen?
denn wenn ich die PUBLIC CLASS STUDENTBEISPIEL weglasse und das in dem interactionsfenster manuell mache, kriege ich bei jeder returnmethode einen wert ausgegeben. will ich das aber net so haben,muss ich den methodennamen mit in die Classe schreiben Sad, wieso?
Versteh nicht ganz, was du willst. ;)
 
mit semesterbeschreibung gebe ich den namen des Semesters wieder, der in dem konstruktor angegeben werden muss!also wenn 0 dann sommersem. oder wenn 1 dann wintersem. :)
das war damit gemeint! oder hab ich da etwas falsch gemacht mit der methode?
weil diese methode gibt nicht "sommersemester oder wintersemester" aus,wenn ich das programm laufen lasse! verstehst das jetzt?^^
 
Also entweder musst du
Code:
System.out.println("Semesterbeschreibung: "+semesterbeschreibung);
durch
Code:
System.out.println("Semesterbeschreibung: "+semesterbeschreibung());
ersetzen oder du weist dem Objekt semesterbeschreibung irgendwann den Wert von semesterbeschreibung() zu
Code:
semesterbeschreibung = semesterbeschreibung();
weil das machst du nie ;)

Übersichtshalber sollten auch die Methoden nicht so heißen wie die Objekte/Variablen. Also zB getSemesterbeschreibung() wäre besser.
 
cool, funtzt jetzt! ;) wieso diese () klammern setzen?hab das noch net so richtig gerafft :(
was heißt das getSemesterbeschreibung?

hab da noch ne frage:^^

wieso kann ich net im konstruktor die gleichen namen wie in der klasse verwenden! ist doch eh das gleiche, was ich da schreibe und im komstruktor setze ich ja beides gleich!?
 
semesterbeschreibung ist ein Objekt vom Typ String
semesterbeschreibung() ist deine (!) Methode, die den Wert (für semesterbeschreibung) als String zurückliefert ;)
und getSemesterbeschreibung() wäre eben besser als Bezeichnung für die Methode, um (wie eben in diesem Fall) Verwechslungen vorzubeugen ;)

du kannst auch im Konstruktor die Variablen so nennen wie die Klassen-Variablen, allerdings musst du dann zur Unterscheidung, welche Variable angesprochen werden soll, bei den Klassen-Variablen this voranstellen, kleines Beispiel:
Code:
public class Test
{
	private String s = "bla";

	public Test(String s);
	{
		System.out.println(s);
		System.out.println(this.s);
		this.s = s;
		System.out.println(this.s);
	}

	public static void main(String[] args])
	{
		Test test = new Test("blub");
	}
}

erzeugt folgende Ausgabe:
Code:
blub
bla
blub
 
Zuletzt bearbeitet:
hm^^ wie hast du dir das javaprogrammieren beigebracht? mit welchem buch? :)
muss es nämlich auch grad fürs studium lernen! ist etwas schwirerig ;(
 
edit: kann das prog net kompilieren :(
der sagt,dass ein method body hier fehlt
public Test(String s);
 
Also ich würd dir erstmal wärmstens empfehlen Eclipse als IDE zu benutzen, da werden nämlich solche Fehler wie du sie hast schon bei der Eingabe angezeigt und bei solchen Sachen wie Variablenname gleich Funktionsname Warnungen ausgegeben.
Dann solltest du dir, bevor du überhaupt anfängst zu programmieren erstmal prinzipiell über ein paar dinge im Klaren werden. z.B. was ist eine Variable, was ist ein Objekt, was ist eine Funktion. Und wo liegen da die unterschiede. (So langsam wird mir klar warum man bei uns im 1. Semester mit funktionaler Programmierung angefangen hat, da gab es keine Variablen, die einen hätten verwirren können)
Und nen Buch braucht man meiner Meinung zu Java höchstens zum nachschlagen (wobei selbst das nur geht wenn man immer das neuste Buch hat, stand neulich ziemlich dumm da als ich kein Internet hatte und in meiner Java 1.3 Referenz entwas zu Generics nachschlagen wollte) aber zum lernen Definitiv nicht. Die Sprache ist so simpel das wenn man beim Coden angekommen ist, den verstand ausschalten kann. Außerdem ist sie so weit verbreitet, dass du überall im Internet was zum nachlesen findest (würde dir diese Seite empfehlen)
Java wird erst kompliziert wenn man tiefer in die Objektorientierung reingeht und Polymorphien nutzen will, aber das liegt nicht in erster Linie an Java sondern an den Konzepten dahinter.
 
hm bin im 1.semester angewandte informatik...^^
nur unser prof bringt das so blöd rüber :( naja und wenn man den faden verloren hat,muss man sich halt alles selber beibringen!
 
Wie gesagt schau dir mal die Seite die ich dir da oben genannt hab an, die find ich ganz gut und dann kannst du nochmal hier gucken, da sind die Folien von meiner Vorlesung zu Java und auch einige Literaturempfehlungen, falls du dir umbeding ein Buch kaufen willst. Aber wie gesagt in meinen Augen ist es rausgeschmissenes Geld.
 
Mh ich glaube ich sollte auch Angewandte Informatik studieren ist ja einfacher als die Abschlussprüfung der IHk für Fachinformatiker ..hätte sich mein Spaß da ich die OOP Paradigmen und UML schon kenne... :-)

Wo studierst du :-)
 
Zurück
Oben