Hallo zusammen,
ich habe ein kleines Problem und wäre sehr dankbar wenn ihr mir kurz helfen könntet!
Ich habe ein Programm geschrieben, dass Studentennamen abfragt und dann Objekte dazu erstellt.
Wenn ich nun die Objekte in meine erstellte Studentenliste speichere und ausgebe kommt
eine Ausgabe wie Person@53c059f6 etc. heraus
Als ich nur die Strings gespeichert habe und nicht die Objekte gespeichert habe, hat es funktioniert..
Was mache ich falsch?
Hier die Main:
Und die Liste:
Den Code zum Objekt Person hab ich jetzt mal herausgelassen.. da dürfte ja eig alles passen
MFG Hawk
ich habe ein kleines Problem und wäre sehr dankbar wenn ihr mir kurz helfen könntet!
Ich habe ein Programm geschrieben, dass Studentennamen abfragt und dann Objekte dazu erstellt.
Wenn ich nun die Objekte in meine erstellte Studentenliste speichere und ausgebe kommt
eine Ausgabe wie Person@53c059f6 etc. heraus
Als ich nur die Strings gespeichert habe und nicht die Objekte gespeichert habe, hat es funktioniert..
Was mache ich falsch?
Hier die Main:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class App {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int capacity = 0;
int grow = 1;
int index = 0;
StudList StudList1 = new StudList (capacity,grow);
String Vorname = "a";
int j= 0;
for (capacity =0; ; j++,capacity++)
{
System.out.println("Geben Sie den Vornamen des " + (j+1)+ ".Studenten ein!");
Vorname = reader.readLine ();
if (Vorname.equals(""))
{
break;
}
System.out.println("Geben Sie den Nachnamen des " + (j+1)+ ".Studenten ein!");
String Nachname = reader.readLine();
Person Person1 = new Person (Vorname,Nachname);
Person1.getfullname();
StudList1.setAt (capacity, Person1);
//capacity = capacity+1;
//StudList1.setAt (capacity, Nachname);
}
StudList1.getAt(0);
for (int i = 0; index < capacity ; i++,index++)
{
System.out.println( (i+1) + ".Student");
StudList1.getAt(index);
//index = index +1;
//StudList1.getAt(index);
}
}
}
Java:
public class StudList
{
private int Length;
private int Grow = 1;
private Person[] Buffer;
public StudList(int capacity, int grow)
{
Buffer = new Person [capacity];
this.Grow = grow;
this.Length = 0;
}
public void add (Person value) throws Exception
{
setAt (Length, value);
}
public void setAt (int index, Person person1) throws Exception
{
int NewLength = Buffer.length;
while (index >= NewLength)
{
NewLength += Grow;
}
if (NewLength != Buffer.length)
{
Person[]temp = new Person [NewLength];
ArrayCopy (Buffer, temp);
Buffer = temp;
}
Buffer [index] = person1;
if (Length <= index)
{
Length = index +1;
}
}
public Person getAt (int index) throws IndexOutOfBoundsException
{
System.out.println (Buffer [index]);
if (index >= Length)
{
throw new
IndexOutOfBoundsException ();
}
return Buffer [index];
}
private void ArrayCopy (
Person[] buffer2,
Person[] temp) throws Exception
{
if (buffer2.length <= temp.length)
{
for (int i = 0; i < buffer2.length; i++)
{
temp[i] = buffer2[i];
}
}
else
{
throw new Exception(
"Das Zielfeld ist kürzer als das Quellfeld.");
}
}
}
Den Code zum Objekt Person hab ich jetzt mal herausgelassen.. da dürfte ja eig alles passen
MFG Hawk