일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- php 프로그래밍
- php 프로그래밍 입문 문제풀이
- 페이코 추천인코드
- 스프링
- 페이코 추천인
- 자바
- 페이코 초대코드
- php
- C
- C언어
- 파이썬
- 배열
- programmers
- 백준
- php 프로그래밍 입문 솔루션
- 최단 경로
- Java
- 플러터
- JAVA SPRING
- 플러터 개발환경 설정
- php 프로그래밍 입문 예제
- SWEA
- 자바 스프링
- php 프로그래밍 입문 연습문제
- Flutter
- 한정 분기
- php 프로그래밍 입문
- 페이코 친구코드
- php 프로그래밍 입문 3판
- spring
Archives
- Today
- Total
11-07 11:40
ImJay
[자바] Getters 와 Setters 를 사용하는 이유 본문
반응형
Getters
서로 다른 객체 A, B 가 있다고 가정하자.
public class A {
B B = new B();
int x = B.x;
}
public class B {
int x;
}
객체 A 는 객체 B 의 변수 x 를 참조하고 있다.
여기서, 객체 B의 x 변수명을 x1 로 수정한다면?
객체 A는 x1 를 사용할 수 없을 것이고, 이는 캡슐화가 제대로 이루어지지 않았다고 할 수 있다.
그렇다면 여기서 getter를 사용해보자.
public class A {
B B = new B();
int x = B.getX();
}
public class B {
int x1;
public int getX() {
return x1;
}
}
객체 B의 x 변수명이 x1 으로 수정되어도 객체 A는 아무런 영향 없이 기존의 x 값을 사용할 수 있다.
Setters
서로 다른 객체 A, B 가 있다고 가정하자.
public class A {
int x = 0;
B B = new B();
B.x = x;
}
public class B {
int x;
}
객체 A 의 x 값을 객체 B의 x 값으로 전달하고 싶다.
그러나 위와 같은 방법으로 전달하게 되면, 객체 B의 x에 직접 선언해주는 것이므로 캡슐화가 제대로 이루어지지 않았다.
그렇다면 여기서 setter를 사용해보자.
public class A {
int x = 0;
B B = new B();
B.setX(x);
}
public class B {
int x;
public void setX(int x) {
this.x = x;
}
}
이런식으로 간접적으로 객체 A의 x 값을 객체 B의 x 값으로 전달해줄 수 있다.
캡슐화를 깨지 않기 위해 Getters 와 Setters 가 필요하다는 사실을 알 수 있다.
반응형
'자바 > 기본 개념' 카테고리의 다른 글
[자바] Has A 상속 (0) | 2022.06.30 |
---|---|
[자바] 프로그램 설계 시 기본적으로 고려해야되는 것 (0) | 2022.06.30 |
[자바] 생성자 오버로드(Constructor Overload) (0) | 2022.06.28 |
[자바] 생성자(Constructor) (0) | 2022.06.28 |
[자바] 객체지향 - 은닉성(Information Hiding) (0) | 2022.06.28 |
Comments