N스크린하이브리드앱과정/JAVA

[2주][1일차] 캡슐화와 데이터 은닉. 다형성과 메서드 오버로딩

광천스러움 2013. 7. 22. 18:06

**캡슐화와 데이터 은닉**

앞에서 "접근 지정자" 4가지를 배웠다. 이 접근 지정자를 통해 접근할 수 있는 범위를 지정할 수 있게되고, 이것을 다른 말로 캡슐화라고 한다.

 

*단축키

Alt + shift + s -> generate getters and setters... get과 set을 자동으로 설정해줌.

 

 

* Animal클래스 숨기기 실습 - 동물 클래스

Animal 클래스에서 본래는 private가 없었다.

그래서 데이터 은닉을 위해 아래 그림과 같이 private로 지정을 해주었다.

저번주 실습때는 get과 set을 일일이 손으로 쳐줘야 했다.

그러나 이제 자동으로 지정해 줄수가 있다.

 

단축키 Alt + shift + s -> generate getters and setters... 를 클릭하면,

아래 그림과 같은 창이 뜬다.

 

 

'select All'을 누르고 OK 버튼을 누르자.

밑의 Insertion point나 sort by탭은 그대로 놔둬도 된다.

 

 

작업을 완료하고 나면 위 그림과 같이 자동으로 get과 set이 생성된다.

우리는 이걸 다 활용해서 출력할 것이기 때문에 다 불러온 것이므로,

나중에 입맛대로 골라서 사용하면 된다.

 

자, 이제 캡슐화된 동물의 타입, 이름, 나이를 불러오는 코드를 작성해보자.

main메서드에서 가져올 속성들을 위 그림과 같이 지정해주면 된다.

지정해줄 때에는 "set", 출력문을 통해 출력할 때에는 "get"을 사용하면 된다.

 

 

 

* 은행계좌 private로 접근 설정하여 출력하기

우리는 앞에서 은행계좌 클래스를 만들어 본적이 있다.

 

본래는 아무런 접근 지정자도 사용하지 않았으나, 아까와 같이 단축키를 사용하여 get과 set을 자동 설정하면 된다.

 

역시 같은 방법으로 코딩해주면 된다.

 

 

 

 

**다형성과 메서드 오버로딩**

개념

1. 같은 이름의 메소드를 여러개 정의하는 것.

2. 메소드의 이름은 동일하게 하고 매개변수의 자료형이나 개수를 서로 다르게 주어 정의하는 것.

3. 생성자도 오버로딩 할 수 있다.

4. 사용의 편리를 위해 쓴다.

 

위의 그림처럼, 이제까지 배운 바로는 형이 다를 경우, iAbs, lAbs...같이 메서드를 구분해야 했다.

 

하지만 메서드 오버로딩을 활용하면, 모든 메서드가 "abs"로 이름이 같고, 형만 다르게 함으로써

메서드를 같이 공유할 수 있다.

 

 

*문자열 출력하기

 

결과

 

비정형인자

"String...name"  이런 식으로 사용해준다.

받아올 문자가 2개, 3개로 정해져 있으면 이 비정형인자를 굳이 쓸 필요가 없지만, 인자값이 몇개가 될지 모르는 경우 이런식으로 비정형인자를 활용해주면 편리하다.

 

향상된 for문

 

결과

 

전체 코딩