2013년 7월 1일 월요일

호출(Call)



JVM 메모리 구조 - 호출스택
개체간 수행의 흐름 - 메소드 호출

Call Stack가 가득차서 생기는 오류 - Stack Overflow Error

메소드가 호출될 때마다 메소드의 정보를 저장한다.
호출된 메소드의 수행이 끝나면 메모리에서 해제한다.

Call Stack에서 main()이 해제되면 정상적으로 프로그램이 종료된 것이다.

기본형 매개변수와 참조형 매개변수
호출되는 매소드 입장에서는 값을 읽을수만 있다.
참조형의 경우는 값을 읽고 쓰기 할 수 있다.



재귀호출 - 가급적 쓰지 않는게 좋다.

클래스(static)메소드와 인스턴스메소드
모든 인스턴스에서 공유해야 할 값 static을 붙인다.
각각 인스턴스에서 고유의 값을 저장 static을 붙이지 않는다.

인스턴스메소드란 해당 인스턴스를 생성하여 그 개체를 통해야만 사용가능한 메소드

클래스메소드 개체생성을 하지 않아도 언제든지 호출이 가능하다.
클래스 이름으로 호출한다.(ex- Math.random())

같은 클래스내에 non-static형 인스턴스를 사용하는 경우 절대로 static을 사용 할 수 없다.
static형 인스턴스를 사용하는 경우 static을 사용할 수 있다.



멤버간 참조 호출
static형은 그냥 호출 및 참조가 가능하지만 인스턴스형은 객체를 통하여만 가능하다.

메소드 오버로딩
같은 클래스 내에서 같은 이름의 메소드를 선언하여 사용하는 것
생성자 메소드도 오버로딩이 가능하다.
조건
- 메소드 이름이 동일
- 매개변수의 갯수 or 타입이 달라야 함
- 리턴타입만 다른것은 오버로딩 할 수 없다



생성자
- 객체가 생성되거나 전달될때 초기화하는 메소드
- 모든 클래스는 최소한 1개 이상의 생성자를 가진다.
- 메소드와 거의 같다.

조건
- 클래스 이름과 같아야 한다.
- 리턴유형을 지정하지 않는다.(주는 순간 일반 메소드가 된다)

기본생성자 - default 생성자(컴파일러가 생성해 준다. 아무 내용 없음)



this(), this
this() - 같은 클래스내에 다른 생성자를 호출하는 용도
this()를 가장 첫 문장에서 사용하여야 한다.
this - 지역변수와 멤버변수를 구분하기 위하여 사용

변수의 초기화
초기화 - 변수를 선언하고 최초에 값을 저장하는 것
명시적 초기화 - 선언하면서 값을 집어 넣는것
생성자 초기화 - 인스턴스 변수에 한함


댓글 없음:

댓글 쓰기