2008-02-03, 17:39
  #1
Medlem
dests avatar
Har lite problem med min kod till ett ganska enkelt java program.

Har 3 st objekt av klassen Person. Problemet r nr jag ska spara en viss persons namn tex person_1.name(namn); s verkar det sparas fr alla objekt av klassen Person. S nr jag vill visa person_3:s namn s visar den det fr person_1.

r inte helt inne p java n d jag precis brjat med det men ngon som vet en lsning 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. Stng 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 ngon bra rubrik till posten, sorry.
__________________
Senast redigerad av dest 2008-02-03 kl. 17:43.
Citera
2008-02-03, 17:46
  #2
Medlem
Balthazaer-s avatar
private static int PersonNr;

Ta bort ordet "static" s lser det sig.
Citera
2008-02-03, 17:48
  #3
Medlem
dests avatar
Citat:
Ursprungligen postat av Balthazaer-
private static int PersonNr;

Ta bort ordet "static" s lser det sig.


Vad dum man r Aja..fr skylla p att jag inte programmerat p lnge.

Om man har static dr och tilldelar den ett vrde, kan man inte byta det vrdet efter det?

Vad jag mena var varfr alla objekt fr vrdet nr den r static.
__________________
Senast redigerad av dest 2008-02-03 kl. 17:54.
Citera
2008-02-03, 21:15
  #4
Medlem
Tooners avatar
Om en variabel (eller metod) r static s tillhr den klassen och inte instansen.

Allts spelar det ingen roll vilket objekt som ndrar vrdet, eftersom det tillhr klassen kommer alla objekt att hmta samma vrde sen.

Hade de varit public hade du inte ens behvs gra objekt fr att komma t variablerna. Person.age hade rckt.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in