Это основной вопрос, но я все еще не понимаю концепцию инкапсуляции. Я не понял, как мы можем изменить свойства класса из другого класса. мы пытаемся установить значение общего экземпляра класса, мы должны создать объект этого класса, а затем установить значение. Каждый объект относится к разной памяти .so, даже если мы изменим значение экземпляра это не повлияет на какой-либо другой объект.
Даже я пытаюсь изменить значение static public instance, также я не могу изменить значение свойства класса.
Пример приведен ниже
// Employee class
public class Employee {
public static int empid;
public static String empname;
public static void main(String[] args) {
System.out.println("print employe details:"+empid+" "+empname);
}
// EmployeeTest class
public class EmployeeTest {
public static void main(String[] args) {
Employee e = new Employee();
e.empid=20;
e.empname="jerry";
Employee.empid=10;
Employee.empname="tom";
}
}
}
Каждый раз, когда я запускаю класс Employee
, я получаю одинаковое значение
print employe details:0 null
Несмотря на то, что я не придерживаюсь концепции инкапсуляции, и я не могу изменить значение публичного экземпляра класса employee. Пожалуйста, помогите мне понять концепцию, в которой я ошибаюсь.