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.
Aja..får skylla på att jag inte programmerat på länge. 