자바에서 변수의 기본 속성은 폐쇄적이고 이를 의미하는 키워드는 private이다. 이는 프로그램 안의 변수에 값을 직접 입력할 수 없다는 것을 의미한다. 대신 값을 주고 받는 방식을 메소드로 처리하여 간접적으로 입력하고 그걸 받아서 가져올 때에도 메소드에 '물어서' 가져온다.
이렇게 일견 번거로워 보이는 방법을 쓰는 이유는 방대한 양의 소스코드를 실제 업무에서 제작할 때 기존의 절차적 프로그래밍 방식이 변수에 값을 직접 입력함으로써 유발되는 발견하기 어려운 에러를 최대한 방지하기 위함이다.
1: class Dog {
2: //멤버 변수 선언부
3: private String name ;
4: private String color ;
5:6: //setter
7: public void setName(String name) {8: this.name = name;
9: }10:11: public void setColor(String color) {12: this.color = color;
13: }14:15: //getter
16: public String getName() {
17: return this.name ;18: }19:20: public String getColor() {
21: return this.color ;22: }23:24: //멤버 함수 선언부
25: public void bark() {26: }27:28: public void eat() {29: }30: }31:32: public class DogTest {33: public static void main(String[] args) {34: Dog dog = new Dog() ;
35:36: dog.setName("바둑이") ;
37: dog.setColor("흰색") ;
38:39: System.out.println(dog.getName()) ;40: System.out.println(dog.getColor()) ;41:42: //위와 동일한 결과
43: String dogName = dog.getName() ;44: String dogColor = dog.getColor() ;45:46: System.out.println(dogName) ;47: System.out.println(dogColor) ;48: }49: }
'JavaAndroid' 카테고리의 다른 글
자바(Java)에서 static으로 선언되는 변수와 메소드 (0) | 2011.05.23 |
---|---|
자바(Java) 생성자, setter와 getter, 오버로딩 종합 정리 (0) | 2011.05.21 |
자바(Java)의 오버로딩(Overloading) (0) | 2011.05.21 |
setter와 getter를 자동으로 생성해 주는 이클립스(Eclipse) (0) | 2011.05.21 |
자바(Java)의 생성자 개념 (0) | 2011.05.20 |
자바(Java)의 상속(Inheritance) 개념과 방식 (0) | 2011.05.19 |
자바(Java) 객체 인스턴스 생성과 멤버변수 및 멤버함수 활용 (0) | 2011.05.19 |
자바(Java), 이중 for문과 2차원 배열 예제 (0) | 2011.05.19 |