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

[3주][2일][3~4th] JAVA: 다양한 클래스 라이브러리의 활용

광천스러움 2013. 7. 30. 13:55

☆ 오늘 수업의 핵심 TIP

*자바 클래스 라이브러리의 기능을 볼 수 있는 홈페이지!

 - 영문 : http://docs.oracle.com/javase/7/docs/api/

 - 한글 : http://xrath.com

 

*오버라이딩 방법(tostring)

 - alt + shift + s + v : 기존의 오버라이딩

 - alt + shift + s + s : toString을 사용할 때 편리한 오버라이딩(실습3)

 

*실습3에서 오버라이딩은 상속받았을때만 쓰이지 않나?

 - 오버라이딩은 일반적으로 부모클래스에서 메서드의 기능을 상속받은 경우에

    그 기능을 자기의 입맛에 맞게 재설정하려고 사용한다. 그런데, 실습3에서는 얼핏 상속받은 것이

    아무것도 없어보인다.

    -> 이유는 tostring메서드가 object클래스에서 파생되어 클래스 라이브러리에 있으므로, 상속이 생

         략되어 있다. 실제로는 object클래스에서 tostring메서드를 상속받는 것이다!

 

*실습4 재귀함수에서!

리턴값은(return값) 나를 부른자리로 간다. 즉, 나를 호출한 메서드로 가게 된다.

 

 

☆ 실습 1

 - a1.getClass() : 객체 a1이 가리키는 클래스 A의 정보를 출력해줌 9~10번줄

 - a1.hashCode() : 객체 a1이 가리키는 클래스 A의 주소값(10진수) 13~14번줄

 - a1 : 객체 a1이 가리키는 클래스 A의 주소값과, a1의 주소값(16진수)이 출력됨 16번줄

 - a1.toString() : a1의 출력값과 같음. toString()이 생략되어있기 때문임 19번줄

 

결과

 

 

 

☆ 실습 2 - 실값과 참조값의 비교! - equals()메서드

 

 

☆ 실습 3 - toString()메서드

toString()메서드 : 객체의 정보를 문자열로 제공.

                         위 그림에서는 ToStringTest()의 생성자 값을 문자열로 출력할 것이다.

위 그림에서 핵심은, obj, obj2, obj3.toString()은 같은 출력결과가 나온다는 것이다.

왜냐하면 toString을 생략하여 쓸 수 있기 때문이다.

 

ToStringTest 클래스에서, 생성자오버로딩을 사용하여 매개변수를 4개 받았기 때문에,

메인 메서드에서 초기값 4개를 괄호 안에 넣어 출력할 수 있게 되었다.

 

toString()의 오버라이딩 옵션은 이클립스에서 따로 단축키로 나와있을만큼 많이 쓰인다.

alt + shift + s + s 로 오버라이딩을 하여 출력값을 이쁘게 재설정 해주자.

 

결과

오버라이딩의 설정처럼 이쁘게 결과가 출력되었다.

 

 

☆ 실습 4 - 팩토리얼 만들기

 * 재귀함수 : 자기 자신을 호출하는 메서드

return값은 바로 이전에 호출했던 곳으로 간다! 이게 제일 중요한 개념!

메인 메서드에서 factorial메서드에 4가 들어가 출력을 명령했다.

그러면 아래의 메서드로 들어가 매개변수값을 4로 받고, else로 들어가 result를 저장하게 된다.

순환

1. 4*factorial(3)이 result에 저장될 것이다.

2. factorial(3)은 다시 3*factorial(2)가 저장될 것이다.

3. 2*factorial(1) 이 result에 저장.

4. factorial(1)은 n이 1이므로 result값이 1로 대체된다.

5. 리턴된 result값, 1은 바로 전 호출했던 3번으로 가서 2*1을 수행한다.

6. 리턴된 result값, 2는 바로 전 호출했던 2번으로 가서 3*2을 수행한다.

7. 리턴된 result값, 6는 바로 전 호출했던 1번으로 가서 4*6을 수행한다.

8. 그러면 값은 24가 된다!

 

/(ㅇ_ㅇ)/