파일명:Ex05_12_setter_getter.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | class Tv2{ private String color; private boolean power; private int ch; public String getColor() { return color; } public void setColor(String color) { this.color = color; } public boolean getPower() { return power; } public void setPower(boolean power) { this.power = power; } public int getCh() { return ch; } public void setCh(int ch) { this.ch = ch; } /* public Tv2(){ }*/ } /*//접근지정자 private : 같은 클래스 안에서만 사용가능 public : 클래스가 같지 않아도 사용가능 protected X(default) : */ public class Ex05_12_setter_getter { public static void main(String[] args) { Tv2 t1 = new Tv2(); //객체 생성 t1.setColor("red"); //setColor라는 매서드를 통하여 red를 넣어 줌 t1.setPower(true); //setPower라는 매서드를 통하여 true를 넣어 줌 t1.setCh(7); //setCh라는 매서드를 통하여 7을 넣어 줌 System.out.println(t1.getColor()); System.out.println(t1.getPower()); System.out.println(t1.getCh()); } } | cs |
예제 코드
결과
클래스에서 자주 사용하는 setter와 getter는 사실 Math처럼 따로 지정되어 있는 클래스의 매서드가 아닌
사용자가 임의로 지정하기 때문에 위의 예제처럼 굳이 get이나 set이 붙지 않아도 되지만 구분의 편리함 때문에 써준다.
지금까진 클래스의 맴버 변수를 사용하기 위해선 객체를 생성하고 생성된 객체의 변수를 사용하여 바로 맴버변수나 맴버매서드를 사용해 왔다.
하지만 접근제어자가 private일 경우 같은 클래스 내에서는 사용이 가능 하지만 다른 클래스에서는 사용이 불가능 하다.
이는 보안상의 이유이거나 다른 클래스에서 함부로 값을 변경해서는 안되는 이유로인해 private으로 접근제어자를 지정해 주는데 이를 setting 하거나 값을 getting 즉 값을 얻어올때 사용되어진다.
일종의 클래스 내의 private로 생성된 변수에 접근하여 값을 지정해주거나 가져오는 매서드라고 보면된다.
전에는 클래스변수명.맴버변수명 이런식으로 값을 주거나 받았다면
getter setter를 사용하게되면 클래스변수명.set맴버변수명, 클래스변수명.get맴버변수명 이런식으로 클래스의 변수를 사용한다.
getter와 setter의 set과 get 바로 뒤의 변수명은 보통 대문자를 사용하는데 이는 개발자 간의 약속이지 모조건 적은 아니지만 이왕이면 룰에 따르는게 좋다.
setter는 매개변수로 값을 가지고와 클래스내의 맴버변수에 값을 넣우주는 기능을 한다.
getter는 클래스내의 맴버변수 값을 가지고 와 return으로 값을 리턴해주는데 여기도서 매서드의 반환 변수형과 return값의 변수형이 같아야 한다.
이번 예제에 보면 this라는 코드가 새로 등장하게 되는데 이는 현재 클래스를 뜻하는 코드이다.
setter매서드를 사용하다 보면 매개변수와 클래스 내의 맴버변수의 이름이 같아 구분해 줘야 하는데 this를 사용하여 클래스 내의 맴버변수임을 지정해 준다.
this는 현재 클래스를 나타내는것으로 자주 사용되는 코드이다.
'Programing > Java' 카테고리의 다른 글
[Java] 과제 클래스-3 (0) | 2016.05.22 |
---|---|
[Java] 예제 클래스 생성자 (0) | 2016.05.22 |
[Java] 예제 클래스 Math (0) | 2016.05.21 |
[Java] 과제 클래스-2 (0) | 2016.05.21 |
[Java] 예제 클래스 재귀호출-2 (0) | 2016.05.21 |