2014-12-28 2 views
0

Я просто написал небольшую тестовую программу:Какой способ доступа к полям классов лучше?

public class ClassField { 
    int a = 10; 

    public int getValue() { 
     return a; 
    } 

    public void setValue(int a) { 
     this.a = a; 
    } 
} 

public class Main { 
    public static void main(String[] args) { 
     ClassField test1 = new ClassField(); 
     ClassField test2 = new ClassField(); 

     System.out.println(test1.getValue()); 
     test1.setValue(20); 
     System.out.println(test1.getValue()); 

     System.out.println(test2.a); 
     test2.a = 20; 
     System.out.println(test2.a); 
    } 
} 

Программа выдавала на выходе, как и ожидалось:

10 
20 
10 
20 

Как я понял, там было 2 пути доступа к полям: путем доступа к нему напрямую , и путем косвенного доступа к нему посредством метода. Каким образом обычно считается как лучше?

+3

http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – Pshemo

ответ

1

Вообще говоря, методы - лучший способ доступа к любому полю, потому что вы получаете только значение переменной, а не самую переменную. Он также предоставляет средства ограничения доступа к переменной, будь то получение, настройка или и то, и другое. Эта идея более распространена в C++ из-за ее использования возможностей ссылок, но практика переносится на другие объектно-ориентированные языки. Методы также имеют тенденцию обеспечивать более интуитивный API, когда задействованы другие программисты.

Смежные вопросы