Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public class Person {
public String name;
public String vorname;
public Person () {
this.name = "Schmidt";
this.vorname = "Sarah";
}
public Person (String name, String vorname) {
this.name = name;
this.vorname = vorname;
}
public String toString () {
return "Ich heiße: " + this.vorname + " " + this.name;
}
}
Java:
public class PersonKlasse {
public static void main (String[] args) {
Person sarah = new Person () {
sarah.name;
sarah.vorname; };
System.out.println(sarah.toString());
}
}
Hallo ihr Lieben,
ich bin absoluter Anfänger und beschäftige mich gerade mit Methoden... ich habe ein kleines Programm programmiert, dass aus zwei Klassen besteht.
Leider erhalte ich die Fehlermeldung:
PersonKlasse.java:5: error: <identifier> expected
sarah.name;
^
PersonKlasse.java:6: error: <identifier> expected
sarah.vorname; };
^
2 errors
Kann mir jemand helgen? Wahrscheinlich liegt es daran, dass ich nicht richtig auf die Methoden zugreife. Aber ich habe absolut keine Ahnung und versuche mich schon seit 3 Stunden daran...
Es wird zwar nicht deutlich, was genau du machen willst, aber um die Namen zu setzen hast du mit deinem Code jetzt drei Möglichkeiten:
Java:
class PersonKlasse {
public static void main(String[] args) {
//1. Namen in Konstruktur übergeben
Person p = new Person("Schmidt", "Sarah");
System.out.println(p);
//2. Parameterlosen Konstruktor aufrufen (dann werden die Standardnamen gesetzt, in deinem Fall wieder "Sarah Schmidt"
p = new Person();
System.out.println(p);
//3. Attribute manuell setzen
p = new Person();
p.name = "Müller";
p.vorname = "Melanie";
System.out.println(p);
}
}
Ich der PersonKlasse möchte ich, dass die Werte aus dem Konstruktor kommen. Ich möchte dann z.B. in der ersten Zeile nur den Namen angezeigt bekommen.
In der zweiten Zeile Name und Vorname und/oder in der dritten nur den Vornamen.
Ich hatte dacht, dass ich ein neues Objekt anlegen und die Werte übergebe. Aber leider klappt das nicht... wie gesagt, ich bin auch wirklich absoluter Anfänger.
Ich hatte mir das z.B. so gedacht:
Java:
public class PersonKlasse {
public static void main (String[] args) {
Person p = new Person (name, vorname), new Person (name), new Person (vorname);
System.out.println(p.toString());
Du solltest dich auch als Anfänger erstmal mit der Syntax der Sprache auseinandersetzen. Der Code ist nämlich ganz weit weg, von dem was syntaktisch überhaupt möglich ist. Sich einfach irgendwas denken und das in Code schreiben funktioniert meistens als Anfänger nicht so gut
Du willst vermutlich sowas?
Java:
class Person {
private String name;
private String vorname;
public Person(String name, String vorname) {
this.name = name;
this.vorname = vorname;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Ich heiße");
if (vorname != null) sb.append(" " + vorname);
if (name != null) sb.append(" " + name);
return sb.toString();
}
}
class PersonKlasse {
public static void main(String[] args) {
Person p1 = new Person("Schmidt", "Sarah");
System.out.println(p1);
Person p2 = new Person("Schmidt", null);
System.out.println(p2);
Person p3 = new Person(null, "Sarah");
System.out.println(p3);
}
}
Ich arbeite gerade ein Tutorial durch (gailer.net)... die habe ich durch das Forum hier gefunden. Ich hoffe, dass mir danach der Aufbau ein bisschen klarer wird. Oft ist es so, dass ich was ausprobiere und es klappt... aber ich kann dann nicht erklären warum genau.
Sowas geht nicht. Was soll das überhaupt bedeuten:
Person p = new Person () {
name.Person;
vorname.Person;};
Welche Werte sollen für Name und Vorname denn gesetzt werden? immer Sarah Schmidt? Das ist kein wirklich guter Stil, wenn dein Personen-Objekt standardmäßig immer "Sarah Schmidt" heißt.
Ich wollte das zum üben immer mit den gleichen Daten machen. Und das diese Werte "Sarah" und "Schmidt" immer von Konstruktor gezogen werden.
Ich hatte mir das so gedacht, dass er durch name.Person auf den Namen zugreifen kann, der im Konstruktor festgelegt wurde...
Mein Gott, ist doch bereits alles richtig (Variablen Methoden Parameter usw.), bis auf die fehlerhafte Verwendung der Klasse Person in der main Methode:
Java:
public class Person {
public String name;
public String vorname;
public Person() {
this.name = "Schmidt";
this.vorname = "Sarah";
}
public Person(String name, String vorname) {
this.name = name;
this.vorname = vorname;
}
public String toString() {
return "Ich heiße: " + this.vorname + " " + this.name;
}
public static void main(String[] args) {
Person p1 = new Person();
System.out.println(p1.toString());
Person pa = new Person("Bla", "Anton");
System.out.println(pa.toString());
}
}
Conclusion: Take a look again at the instatation of classes / objects ....
(Sorry, heute wieder Englisch.)