본문 바로가기
Programming Language/Java

[자바의 정석] ch6-22 ~ ch6-29 객체지향 개념 정리 (호출스택, static 메서드)

by Baest 2021. 7. 16.

ch6-22 호출스택

- 메서드 수행에 필요한 메모리가 제공되는 공간

- 메서드가 호출되면 호출스택에 메모리 할당. 종료되면 해제.

 

스택(stack): 밑이 막힌 상자. 위에 차곡차곡 쌓임

 

 

ch6-23 기본형 매개변수

* 스택 부분 코드 보며 그림 그릴 수 있어야함

기본형 매개변수 - 변수의 값을 읽기만 할 수 있음 (read only)

참조형 매개변수 - 변수의 값을 읽고 변경할 수 있음(read & write)

 

 

ch6-24 참조형 매개변수

* 스택 부분 코드 보며 그림 그릴 수 있어야함

 

 

ch6-25 참조형 반환타입

* 스택 부분 코드 보며 그림 그릴 수 있어야함

* static 메서드는 객체 생성 없이 호출 가능함

 

 

ch6-26 static 메서드와 인스턴스 메서드

-> iv 사용 여부로 나뉨

 

인스턴스 메서드

- 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출

- 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드

- 메서드 내에서 인스턴스 변수(iv) 사용 가능

 

static 메서드(클래스 메서드)

- 객체 생성 없이 '클래스이름.메서드이름()'으로 호출

- 인스턴스 멤버(iv,im)와 관련없는 작업을 하는 메서드

- 메서드 내에서 인스턴스 변수(iv) 사용 불가

 

 

ch6-27 static 메서드와 인스턴스 메서드 - 예제

- 프로그래머라면 내가 만든 메서드에 static 붙일지 말지 결정 할 수 있어야함

- static은 iv 필요 없을 때 붙이면됨

 

 

ch6-28 static을 언제 붙여야 할까?

- 속성(멤버 변수) 중에서 공통 속성에 static을 붙인다. (ch6-12 클래스 변수와 인스턴스 변수 부분 참고)

1
2
3
4
5
6
7
8
9
Class Card {


    String kind; //무늬
    int number; //숫자


    static int width = 100; //폭
    static int height = 250; //높이


}
cs

 

- 인스턴스 멤버(iv, im)을 사용하지 않는 메서드에 static을 붙인다.

 

 

ch6-29 메서드 간의 호출과 참조

- static 메서드는 인스턴스 변수(iv)를 사용할 수 없다.

- static 메서드끼리 호출 가능

- 인스턴스 메서드끼리 호출 가능

- static 메서드가 인스턴스 메서드 호출 불가능  

 

<-------------------------------------------------------------정리------------------------------------------------------------->

Q. static 메서드는 static 메서드 호출 가능?

A. 네

 

Q. static 메서드는 인스턴스 변수 사용 가능?

A. 아니오

 

Q. static 메서드는 인스턴스 메서드 호출 가능?

A. 아니오

 

Q. 왜? static 메서드는 인스턴스 멤버(iv, im)를 쓸 수 없나요?

A. satic 메서드 호출 시 객체(iv묶음)가 없을 수도 있어서

   --------------

  항상 호출 가능

 

 

 

 

 

 

 

============================================================================

https://youtu.be/-mqL3LJ4iVc