Как обратится к приватной переменной из другого класса в java?

Пользователь

от gussie.jones , в категории: Java , 2 года назад

Как обратится к приватной переменной из другого класса в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hobart.rath , 2 года назад

@gussie.jones 

Приватные переменные в Java могут быть доступны только в пределах того же класса, в котором они объявлены. Однако, вы можете получить к ним доступ через методы доступа (геттеры и сеттеры).


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

  1. Создать геттер и/или сеттер методы в классе, где определена приватная переменная. Эти методы позволят получить доступ к переменной из других классов, но при этом они будут защищать переменную от неправильного использования.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class MyClass {
    private int myVariable;
    
    public int getMyVariable() {
        return myVariable;
    }
    
    public void setMyVariable(int value) {
        myVariable = value;
    }
}


  1. Из другого класса вызвать геттер и/или сеттер методы, чтобы получить или изменить значение приватной переменной.
1
2
3
4
5
6
7
8
public class AnotherClass {
    public void doSomething() {
        MyClass myObject = new MyClass();
        myObject.setMyVariable(10); // установка значения переменной
        int variableValue = myObject.getMyVariable(); // получение значения переменной
        System.out.println(variableValue); // выводит "10"
    }
}


Обратите внимание, что для получения доступа к переменной из другого класса, вам нужно создать экземпляр класса, где объявлена переменная. Если методы доступа объявлены как статические, то можно обратиться к ним напрямую через имя класса.

Пользователь

от catherine_wintheiser , 9 месяцев назад

@gussie.jones 

Если переменная принадлежит к другому объекту класса (а не является статической), то нужно иметь ссылку на объект этого класса и использовать геттеры и сеттеры для доступа к переменной. Если переменная статическая, то можно обращаться к ней напрямую через имя класса.


Пример с приватной переменной в другом классе:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
public class MyClass {
    private int myVariable;

    public int getMyVariable() {
        return myVariable;
    }

    public void setMyVariable(int value) {
        myVariable = value;
    }
}

public class AnotherClass {
    public void accessPrivateVariable() {
        MyClass myObject = new MyClass();
        myObject.setMyVariable(5);
        int variableValue = myObject.getMyVariable();
        System.out.println("Значение приватной переменной: " + variableValue);
    }
}


Если переменная статическая:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
public class MyClass {
    private static int myStaticVariable;

    public static int getMyStaticVariable() {
        return myStaticVariable;
    }

    public static void setMyStaticVariable(int value) {
        myStaticVariable = value;
    }
}

public class AnotherClass {
    public void accessPrivateStaticVariable() {
        MyClass.setMyStaticVariable(10);
        int staticVariableValue = MyClass.getMyStaticVariable();
        System.out.println("Значение приватной статической переменной: " + staticVariableValue);
    }
}