Get null value from another object in Java, but get value in own class

When I try to execute this code, after I choose AMD, I got null in value. how it can be happen ? below is the source code :
[for main]

public class processor{
    public int hargapro;
    public String nmbarangpro;
    public static final Scanner input = new Scanner(System.in);
    public String getpro()
    {
        return nmbarangpro;
    }
    public int getproharga()
    {
        return hargapro;
    }
    public void daftarpro() {
        List<String> daftarpro = new ArrayList<>();
        daftarpro.add("AMD");
        daftarpro.add("Intel");
        List<String> nomer = new ArrayList<>();
        nomer.add("1. ");
        nomer.add("2. ");
        System.out.println("Processor yang tersedia :");
        for (int i = 0; i < daftarpro.size(); i++) {
            System.out.println(nomer.get(i)+daftarpro.get(i));
            } 
        System.out.println("Pilihan anda : ");
        int pilih = input.nextInt();
        switch(pilih)
        {
            case 1:
            {
            System.out.println("Anda membeli Processor AMD");
            System.out.println("Seharga Rp 1.200.000");
            harga(1200000); //call harga method
            namabarang("AMD"); //call namabarang method
            System.out.println(getpro()); //[for testing]filled with AMD[ni problem here]
            System.out.println(getproharga()); //[for testing][filled with 1200000[no problem here]
            break;
            }
            case  2:
            {
            System.out.println("Anda membeli Processor AMD");
            System.out.println("Seharga Rp 1.200.000");
            harga(1500000);
            namabarang("Intel");  
            break;
            }
            default:
            System.out.println("Pilihan tidak tersedia");
            daftarpro();
        }

        }
    @Override
    public int harga(int hargamasuk) {
        return hargapro = hargamasuk;


    }

    @Override
    public String namabarang(String barang) {
        return nmbarangpro = barang; 
    }
    public static void main(String[] args) {
        processor a = new processor();
        a.daftarpro();//get menu from daftarpro()
        kasir x = new kasir();
        x.semua();//get null in value 
    }
        }

my second files :

public class kasir {
public void semua()
{
    processor a = new processor();
    System.out.println(a.getpro());
}}

When I try to read value through class kasir, i get x.semua filled with null value. how it can be happen ?

Jon Skeet
people
quotationmark

Your semua method creates a new instance of processor which it then reads from:

public void semua()
{
    processor a = new processor();
    System.out.println(a.getpro());
}

That's entirely unrelated to the processor instance you've created in your main method. If your kasir class should logically "know about" the other processor instance, you probably want a processor field in the class, which you might populate via the constructor - so your main method might become:

public static void main(String[] args) {
    processor a = new processor();
    a.daftarpro();
    kasir x = new kasir(a);
    x.semua();
}

As an aside, you should really try to follow the Java naming conventions, so classes of Processor and Kasir, and methods of getPro etc. (And if your code actually looks like that in your editor, I suggest you reformat it, too...)

people

See more on this question at Stackoverflow