При передаче класса с атрибутивным типом в качестве параметра методу, можно ли получить к нему доступ без установщиков?

#java #parameter-passing

#java #передача параметров

Вопрос:

Например, допустим, у меня есть базовый класс:

 package test;

public class Class1 {
    
    private int attribute1;
    private int attribute2;
    
    public Class1(int att1, int att2) {
        this.attribute1 = att1;
        this.attribute2 = att2;
    }
    
}
 

Тогда у меня будет другой класс:

 package test;
    
public class Class2 {
        
    private int attribute3;
    Class1 class1;

    public Class2(int att3){
        this.attribute3 = att3;
    }

    public void insert(Class1 class1) {
        //
    }
    
}
 

Внутри метода insert я буду передавать в качестве параметра атрибут типа Class1. Можно ли получить доступ к атрибутам Class1 без установщиков? если да, то как мне это сделать? Также:

 package test;

public class Class2 {
    
    public static void main(String[] args) {
    
        Class2 c2 = new Class2 ();
        
        c2.insert();
    }

}
 

Как я должен использовать метод .insert()? Например, какие параметры? Я немного сбит с толку, но именно так и должна работать моя программа.

Комментарии:

1. Is it possible to access Class1 attributes without setters? if yes, how do I do it? ДА. Сделайте их общедоступными.

2. Я не могу, они должны быть частными :/

Ответ №1:

Можно ли получить доступ к атрибутам Class1 без установщиков?

Конечно, вы имеете в виду «добытчики». установщики устанавливают значение, получатели получают значение.

Ответ: нет. Отмечены 2 атрибута private .

Как я должен использовать метод .insert()?

 Class1 c1 = new Class1();
Class2 c2 = new Class2();
c2.insert(c1);
 

Комментарии:

1. Хорошо, итак, мне нужны геттеры, но внутри public void insert() Я пытаюсь изменить значения attribute1 и attribute2, это не делается с помощью геттеров, верно?

2. Вам понадобятся оба.