[Java/객체지향] static 메서드와 인스턴스메서드
2024. 8. 18. 20:12ㆍCS/프로그래밍 언어
인스턴스 메서드 - iv 사용O
- 객체(인스턴스) 생성 후, ‘참조변수. 메서드이름( )’으로 호출
- 인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용 가능 → iv 사용하니, 매개변수 필요X
static 메서드 - iv 사용X
- 객체 생성 필요X, ‘클래스이름.메서드이름( )’으로 호출 → ex) Math.round( ), Math.random( )
- 인스턴스 멤버와 관련없는 작업을 하는 메서드
- 메서드 내에서 인스턴스변수 사용X → 작업에 필요한 값 등을 매개변수로 받으니 필요X
언제 static 사용?
- 속성(멤버변수) 중 공통속성(cv)
- 인스턴스 멤버(iv, im)사용X 메서드→ 인스턴스 메서드와 클래스 메서드는 명령문 집합이라는 같은 Base
- → But, “iv사용”이라는 차이만 존재→ But, “iv사용”이라는 차이만 존재
- → 메서드는 “명령문 집합”
class MyMath2{
long a, b;//인스턴스변수(클래스 전체에서 유효)
long add() {//**인스턴스메서드**
return a+b;} //인스턴스변수
static long add(long a, long b) {//**클래스메서드** //매개변수=지역변수(클래스 선언~종료까지 유효)
return a+b;}//지역변수
}
class MyMathTest2 {
public static void main(String args[]){
System.out.println(MyMath2.add(200L,100L));//**클래스메서드 호출**
MyMath2 mm = new MyMath2();//**객체(인스턴스) 생성 (1)**
mm.a = 200L;
mm.b = 100L;
System.out.println(mm.add());//**인스턴스메서드 호출 (2)**
}
메서드 간의 호출과 참조
- 인스턴스변수: 객체 생성 후 사용
- 클래스변수: 언제나 사용
- 인스턴스메서드
- 객체 생성 후 호출
- iv, cv
- 클래스메서드
- 언제나 호출
- cv only
- 인스턴스 메서드 호출 X
'CS > 프로그래밍 언어' 카테고리의 다른 글
[Java/객체지향] 생성자, 생성자의 조건, 참조변수 this (0) | 2024.08.20 |
---|---|
[Java/객체지향] 오버로딩과 오버라이딩 (0) | 2024.08.19 |
[Java/객체지향] 매개변수 (0) | 2024.08.18 |
[Java/객체지향] 메서드 (0) | 2024.08.17 |
[Java/객체지향] 변수 (0) | 2024.08.16 |