Odczyt nazwy obiektu

0

Witam, nie wiem jak odczytać nazwę obiektu, wiem że temat był już wiele razy zakładany ale jakoś dalej tego nie rozumiem. Załóżmy, że mam

public class klasa
{
    public static void main(String[] test)
    {
        klasa2 objekt = new klasa2();
        obiekt.nazwaObiektu();
    }

}

Jak w klasie2 w funkcji nazwaObiektu wypisać jego nazwę ?? Wiem jak już używać getClass(), a getName() nie jestem do końca pewny co robi.

0

Jeżeli potrzebujesz czegoś takiego, to robisz coś źle...

EDIT:

Opisz jaki efekt chcesz uzyskać

0

Mam coś takiego:

 public class sklepKomputerowy
{
    public static void main(String[] test)
    {

        produkcja nowaProdukcja=new produkcja();

        komputer PC1=nowaProdukcja.nowyKomputer(4,4,500,"GeForce 9800gt","intel Core i7");
        komputer PC2=nowaProdukcja.nowyKomputer(12,16,1000,"NVIDIA Telsa K40C","Xeon E5-2696" );
        PC1.wyswietl();
        PC2.wyswietl();
   }


}
class produkcja
{

    komputer nowyKomputer(int iloscRdzeni,int iloscRAM,int pojemnoscDysku,
                          String kartaGraficzna,String procesor)
    {
        komputer komputer = new komputer();
        komputer.iloscRdzeni=iloscRdzeni;
        komputer.iloscRAM=iloscRAM;
        komputer.pojemnoscDysku=pojemnoscDysku;
        komputer.kartaGraficzna=kartaGraficzna;
        komputer.procesor=procesor;
        return komputer;
    }

}; 
class komputer
{

    int iloscRdzeni;
    int iloscRAM;
    int pojemnoscDysku;
    String kartaGraficzna;
    String procesor;
    void wyswietl()
    {

        System.out.println("ilość rdzeni: "+iloscRdzeni);
        System.out.println("ilość RAM: "+iloscRAM);
        System.out.println("pojemność dysku: "+pojemnoscDysku);
        System.out.println("karta graficzna: "+kartaGraficzna);
        System.out.println("procesor: "+procesor);
    }



}; 

I chciałbym przy wywoływaniu funkcji np. PC1.wyswietl() aby napisał mi dodatkowo, że mam obiekt PC1.

0

Nazwa zmiennej nie powinna mieć żadnego wpływu na działanie programu, jeżeli tylko chcesz wiedzieć, ze ten obiekt to wypisał to dopisz sobie metodę toString() do twojej klasy Komputer i zamiast:

    PC1.wyswietl();
    PC2.wyswietl();

zrób:

    System.out.println("PC1: " + PC1.toString());
    System.out.println("PC2: " + PC2.toString());
0
System.out.println(getClass().getName());

Edit:

W tytule tematu i pierwszej wiadomości mówisz o nazwie obiektu, a w ostatnim poście o nazwie klasy... Jeśli zależy ci na nazwie obiektu, to czemu nie nadasz po prostu komputerowi jakiegos ID, lub imienia, na przykład Jerzy?

0

Chodziło mi właśnie o nazwę obiektu, gdy wywołam PC1.wyswietl(); chce żeby wyświetliła mi się nazwa obiektu czyli PC1, później PC2.wyświetl(); wyświetli się PC2 itp.

0

Temat już był: Zwracanie nazwy obiektu.

  1. Pobierasz zadeklarowane pola z danej klasy.
  2. Pobierasz nazwę wybranego pola.
0

Zrobiłem tak, że wpisałem do do klasy komputer, i wyświetla mi tylko
Variable name is: iloscRdzeni;
Variable name is: iloscRAM;
Variable name is: pojemnoscDysku;
Variable name is: kartaGraficzna;
Variable name is: procesor;
A ja chce, żeby wyświetliło mi PC1, PC2 ...itp

0

Dodaj do klasy komputer pole name, zmień trochę konstruktor w tej klasie

komputer PC1=nowaProdukcja.nowyKomputer(4,4,500,"GeForce 9800gt","intel Core i7","PC1");

Wykorzystaj pole name przy wyświetlaniu.

0

Dzięki, takie proste rozwiązanie a jednak ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1