[Java] java 입문 03 - Static Method / 일반 Method
[Java] java 입문 03 - Static Method / 일반 Method
- void 의 뜻
- return값이 있는 Method
- byte, short, int, long, float, double, char, boolean, string .. 등이 올 수 있다.
- debug를 하면 getNum()을 수행한 후 메인함수 getNum();으로 돌아온다.
=> 그 자리가 999로 대체된다.
#메소드 호출 후 변수에 담기
- static
- 동일한 클래스의 static 메소드는 클래스명을 생략해도 된다.
- static이 없을 경우에는 호출이 불가능하다.
# 특정 클래스에 있는 메소드 호출하기
- 다른 패키지에 있는 특정 클래스를 import한다.
- 같은 패키지의 다른 클래스는 import는 필요없다.
- static 멤버 메소드 호출을 하기 위해서는 .으로 호출 가능하다.
# 참조 데이터 타입 vs 기본 데이터 타입
- 참조 데이터 타입(string)의 메소드를 호출한 후 다른 변수에 담을 때
: id값을 복사한다.
- 기본 데이터 타입(int)의 메소드를 호출한 후 다른 변수에 담을 때
: value값을 복사한다.
- 디버깅 시
- 일반Method 호출하기
- 일반 메소드를 호출할 때는 앞서 이용했던 static을 빼면 된다.
- 일반 메소드(객체)에는 method와 field가 있다.
#main메소드에서 method를 호출하려면?
- static이 포함된 메소드는 클래스 명+ . + 메소드명 이 가능했지만 일반 메소드는 불가능하다.
- new 클래스명( ) 으로 선언 가능
- 데이터 타입은 클래스 명과 동일하다. EX > Marine m1 = new Marine( );
- 객체 생성 후 ( . + 메소드명 )이 가능하다.
#main메소드에서 field를 호출하려면?
- Car클래스에서 field 정의하기
- main에서 필드 호출하기
- 디버깅 결과 (9번째 줄까지 실행)
- 디버깅 결과 (끝까지 실행)
: c2의 id값이 변했다. 자세한건 아래에서!
- 데이터가 저장되는 메모리 영역 static / stack / heap
- method의 경우 위와 같이 저장된다.
- class는 static영역에 한 번씩만 저장된다.
- 객체를 생성하면 heap영역에 생성되며 이들은 참조값으로 구분된다.
- 이 참조값은 stack영역에 생성되는 지역변수에 담기고 stack영역에서는 각각을 변수명으로 구분한다.
# 객체=method+field 중 field 저장 방식
# static이 포함된 method일 때 호출방법과 비교해보자!
- value가 포함된 메소드 호출하기