2008-02-03, 17:39
#1
Har lite problem med min kod till ett ganska enkelt java program.
Har 3 st objekt av klassen Person. Problemet är när jag ska spara en viss persons namn tex person_1.name(namn); så verkar det sparas för alla objekt av klassen Person. Så när jag vill visa person_3:s namn så visar den det för person_1.
Är inte helt inne på java än då jag precis börjat med det men någon som vet en lösning på problemet?
Kom inte på någon bra rubrik till posten, sorry.
Har 3 st objekt av klassen Person. Problemet är när jag ska spara en viss persons namn tex person_1.name(namn); så verkar det sparas för alla objekt av klassen Person. Så när jag vill visa person_3:s namn så visar den det för person_1.
Är inte helt inne på java än då jag precis börjat med det men någon som vet en lösning på problemet?
Kod:
import javax.swing.*; import java.io.*; //Main klass public class Personregister { public static void main(String[] args) { Person person_1 = new Person(); Person person_2 = new Person(); Person person_3 = new Person(); int getAge = 0, getPnr= 0, val, val_av_person; String getName = ""; boolean close = false; while (close == false){ val = Integer.parseInt(JOptionPane.showInputDialog("1. Se personuppgifter\n 2. Ändra personuppgifter\n 3. Stäng av.")); switch (val){ case 1: val_av_person = Integer.parseInt(JOptionPane.showInputDialog("Vilken person vill du visa?")); if (val_av_person == 1) { getName = person_1.returnName(); getAge = person_1.returnAge(); getPnr = person_1.returnPnr(); System.out.println(getName); System.out.println(getAge); System.out.println(getPnr); } else if (val_av_person == 2) { getName = person_2.returnName(); getAge = person_2.returnAge(); getPnr = person_2.returnPnr(); System.out.println(getName); System.out.println(getAge); System.out.println(getPnr); } else { getName = person_3.returnName(); getAge = person_3.returnAge(); getPnr = person_3.returnPnr(); System.out.println(getName); System.out.println(getAge); System.out.println(getPnr); } break; case 2: Create_Person(person_1, person_2, person_3); break; case 3: close = true; break; } } } public static void Create_Person (Person person_1, Person person_2, Person person_3){ String namn; int Newage = 0, pnr = 0, val_av_person = 0; val_av_person = Integer.parseInt(JOptionPane.showInputDialog("Vilken person vill du ändra på?")); if (val_av_person == 1) { namn = JOptionPane.showInputDialog("Vad heter du?"); Newage = Integer.parseInt(JOptionPane.showInputDialog("Hur gammal är du?")); pnr = Integer.parseInt(JOptionPane.showInputDialog("Vad är ditt personnummer")); person_1.name(namn); person_1.age(Newage); person_1.PersonNummer(pnr); } else if (val_av_person == 2) { namn = JOptionPane.showInputDialog("Vad heter du?"); Newage = Integer.parseInt(JOptionPane.showInputDialog("Hur gammal är du?")); pnr = Integer.parseInt(JOptionPane.showInputDialog("Vad är ditt personnummer")); person_2.name(namn); person_2.age(Newage); person_2.PersonNummer(pnr); } else { namn = JOptionPane.showInputDialog("Vad heter du?"); Newage = Integer.parseInt(JOptionPane.showInputDialog("Hur gammal är du?")); pnr = Integer.parseInt(JOptionPane.showInputDialog("Vad är ditt personnummer")); person_3.name(namn); person_3.age(Newage); person_3.PersonNummer(pnr); } } } class Person{ private static String forNamn; private static int age; private static int PersonNr; public Person() { } public void name(String namn) { forNamn = namn; } public void age (int Newage) { age = Newage; } public void PersonNummer (int pnr) { PersonNr = pnr; } //Returnerar namnen. public String returnName () { return forNamn; } public int returnAge() { return age; } public int returnPnr() { return PersonNr; } }
Kom inte på någon bra rubrik till posten, sorry.
__________________
Senast redigerad av dest 2008-02-03 kl. 17:43.
Senast redigerad av dest 2008-02-03 kl. 17:43.