Java. Private pola i konstruktory. Gettery i settery.

0

Привет !
Przez jakiś czas uczę się konstruktorów i getterów/setterów. Lecz na żadnej stronie do końca nie mogą objaśnić pewne rzeczy.
1)Kiedy trzeba używać gettery+settery, a kiedy konstruktory?
2)Można kombinować konstruktory z PRIVATE polami w classie z getterami(żeby można było wyświetlić w metodzie MAIN, jak w podanym kodzie)? Albo może istenije jakaś inna zasada?

package javaapplication14;
public class JavaApplication14 {

    public static void main(String[] args) {
        Cat cat_1 = new Cat("Barszczyk", "barszczykowy", 3);
        System.out.println("Podaj imię, color i wiek kota");
        System.out.println("Imię " + cat_1.getName() + ", jego kolor " + cat_1.getColor() + ", ma " + cat_1.getAge() + "lata.");

    }
}

package javaapplication14;
public class Cat {
    private String name;
    private String color;
    private int age;
    
    public Cat(){}
    public Cat(String name, String color, int age){
        this.name = name;
        this.color = color;
        this.age = age;
    }
    
    public String getName(){
        return this.name;
    }
    public String getColor(){
        return this.color;
    }
    public int getAge(){
        return this.age;
    }
}

0

Wydaje mi się ze wszystko zależy od konkretnego przypadku. Zmienne w klasie można inicjować zarówno getterami jak i konstruktorem

1

Ogólnie to gettery raczej tak czy siak będziesz potrzebował.

Jeśli chodzi o wybór ustawiania pól poprzez setter czy konstruktor (czy oba naraz) to dobra praktyka nakazuje zadać sobie pytanie - czy dany obiekt może istnieć bez podanych pól. Czyli, czy są one opcjonalne, czy wymagane. W twoim przypadku, mniemam że color oraz age byłyby wymagane, a czy każdy kot musi się jakoś wabić to nie byłbym pewien.

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