본문 바로가기

IT/Java

2013.01.07. Java Method, Constructor



2013.01.07. Java Method, Constructor


기존의 프로그래밍 언어 (ex: c언어)

- 절차지향적 프로그래밍

- 정의된 절차를 따라 기능을 통과하는 데이터들


자바 (Java)

- 자바는 객체지향 프로그래밍 언어(Object Oriented Programming Language).

- 다양한 상호작용을 주고받는 독립적인 개체가 가득한 현실세계를 모방, 즉 독립적인 객체간의 상호작용이 이루어지는 구조.


객체란? (Object)

- 정적인 특성동적인 기능으로 구분지을 수 있는 것. 이 두 가지에 의해 별개의 객체로 구분됨.

- 공통된 데이터 구조와 기능을 추출하는 과정을 객체의 추상화작업이라 한다.


클래스란? (Class)

- 개발자가 활용하기 위해 객체의 모양으로 만들어낸 틀. 필연적으로 객체의 모습을 닮는다.

- 클래스가 준비되어있는 한 객체는 개발자의 의도에 따라 생성이 가능하다.


※ 객체와 클래스의 관계 : 붕어빵과 붕어빵틀의 관계

※ 한 클래스 내에서 생성된 객체는 구조와 기능(모양)은 같지만 그 세부내용은 각각 다르다.


지역변수(Local Variable)와 멤버변수(Member/Field Variable)

- 지역변수 : 변수가 선언된 메서드 내에서만 사용이 가능하며, 사용을 위해선 반드시 초기화되어야 한다.

- 멤버변수 : 객체가 살아있는 동안 참조가 가능하며, 초기화가 이루어지지 않아도 default값(int=0, String="null")이 존재한다.

객체의 멤버변수명과 메서드 내의 변수명이 겹칠 경우(ex: 생성자) 'this.변수명'으로 멤버변수 우선호출이 가능하다.


객체를 생성하게되면

- 클래스에서 생성된 멤버변수에 데이터를 담을 수 있으며, 클래스 내 메서드를 호출할 수 있다.

(곧, "객체를 초기화한다" = "멤버변수를 초기화한다"이다.)


생성자(Constructor)란?

- What : 객체를 초기화하기 위해

- When : new연산자로 객체를 생성할 때 자동으로 생성자가 호출된다. 따로 생성자를 생성하지 않으면 default생성자가 호출된다.

- How : 메서드처럼 파라미터를 넘겨줌으로써 초기화되는데, 이때 넘겨주는 파라미터에 따라 호출하는 생성자가 달라진다.


ex: object = new StringBuffer("Hey, Java!");    … "Hey, Java!"라는 String값을 파라미터로 하는 생성자를 호출함.


일반적인 메서드와 생성자의 차이
- 리턴타입이 존재하면 안된다. 물론 void도 적어줄 필요 없음.
- 생성자의 이름은 언제나 클래스명과 동일하다.