Я класс определяется следующим образом:Почему я не могу получить доступ к защищенной переменной в Java таким образом?
package prueba;
public class OtraClase {
[...]
protected int num3;
[...]
И еще один класс определен следующим образом:
package otro;
import prueba.*;
public class OtraClaseMas extends OtraClase{
Но если в последнем классе я создаю OtraClase объект я не могу сделать что-то вроде этого:
createdObjectOfOtraClase.num3=1;
И я думаю, что, согласно документации, которую я должен быть в состоянии, here. В нем говорится, что защищенный модификатор позволяет получить доступ подклассом своего класса в другом пакете. И насколько я смотрю на это, я не вижу, чтобы это была другая вещь, а не просто подкласс ее класса в другом пакете.
Я что-то не понимаю?
Редактировать: Я либо использую конструктор класса, либо другую функцию, и он не работает ни в одном месте.
Код для конструктора:
public OtraClaseMas(int num, int num2,int num3)
{
super(num, num2,num3);
OtraClase oc=new OtraClase(1,1,1);
//oc.num3=1; This doesn't work
}
код для метода:
public void foo()
{
OtraClase oc=new OtraClase(1,1,1);
//oc.num3=1; This doesn't work
}
Можете ли вы показать нам, где вызов 'createdObjectOfOtraClase.num3 = 1;'? –
Я не могу воспроизвести проблему. Если вызов 'createdObjectOfOrtaClase.num3 = 1' происходит в' OrtaClaseMas', он должен работать. – Turing85
Вы - случайно, объявили 'num3' как' final'? – Turing85