Developer Factory

16_1. JAVA 문자열 다루기. 생성자, 오버로딩 본문

Developer/Java

16_1. JAVA 문자열 다루기. 생성자, 오버로딩

Jeremy.Park 2014. 7. 3. 00:12


/* 생성자
* - 인스턴스 생성 직후 자동으로 호출되는 메서드
* - 인스턴스 변수를 초기화
*  생성자 선언
* - 중요★★! 생성자의 존재 의의?
* 인스턴스가 제대로 자신의 역할 수행할 수 있도록 최소한의 준비를 하는 시키는 것!
*/

JavaScript : new  Calculator();
                    ↑          
            인스턴스 생성      함수 호출

Java :       new Calculator     ();
                    ↑                    
Calculator 설계도에 따라 인스턴스 준비      생성자 호출 명령



Polymorphism(다형성)
          ↓
Overloading : 같은 이름의 메서드를 여러개 정의 가능.
-> 파라미터 선언이 달라진다.

★★★ 같은 기능을 수행하는 메서드에 대해 같은 이름을 부여 ★★★
 -> 프로그래밍의 일관성

Q. 자바스크립트에서는 왜 Overloading이 없는가?
- arguments 변수가 있기 때문에 함수 구분 불가.

function plus(a, b) { 
return a + b; }     
function plus(a) { return a + a; }     
function plus() { return arguments[0] + arguments[1]; }     



Encapsulation(캡슐화)
=> 내부의 복잡한 명령어를 감춘다
     개발자가 사용하기 편한 인터페이스(메서드) 제공
=> 접근 제어 명령
     (default), public, protected, private
=> 데이트를 잘못 다루는 것 방지
 
=> 외부에서 직접 Data 변수에 접근하여 유효하지 않는 값을 할당하는 행위를 차단 시킴


(문자열 참고)

ex)
 String s1 = new String( "나는 홍길동이다." );
 System. out.println( s1.indexOf( '홍'));      //해당 문자의 인덱스 찾기
 // String 클래스의 indexOf 메소드를 호출하는데 함수 앞에 있는 변수의 s1 주소값을 indexOf 내부의 히든 변수 this라는 변수에 저장하고 this라는 변수를 이용하여  indexOf의 파라미터로 넘어온 '홍'의 배열 위치를 찾는다.



java.lang.Object

-> 자바 객체가 반드시 가져야할 기본 기능을 정의
-> 자바의 모든 클래스로 Object를 상속 받는다  -> Object에 선언된 멤버들을 상속받는다.