Как можно задать значение экземпляру класса с приватной переменной
Всем привет. Есть класс Dog с одной приватной переменной private int age;. В классе мэйн нужно создать три экземпляра этого класса с разными значениями переменной аge. В классе Dog не должно быть конструктора с параметрами и сеттеров. Можно ли это реализовать без использования рефлексии ?
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
Реализовать это можно, использовав шаблон Builder.
public class Dog {
private int age;
public static class Builder {
private Dog dog;
public Builder() {
dog = new Dog();
}
public setAge(int age) {
dog.age = age;
return this;
}
public Dog build() {
Dog result = dog;
dog = new Dog();
return result;
}
}
}
Dog dog = new Dog.Builder()
.setAge(3)
.build();
Автор решения: Adm123
→ Ссылка
А скажите, уж не вложенные ли классы Вы изучаете? Если да - то задача решается созданием класса Dog внутри класса Main:
public class Main {
static class Dog {
private int age;
public void print() {
System.out.println("dog age = " + age);
}
}
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.age = 5;
dog1.print();
Dog dog2 = new Dog();
dog2.age = 4;
dog2.print();
Dog dog3 = new Dog();
dog3.age = 6;
dog3.print();
}
}