일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 99클럽
- 코딩테스트준비
- try-catch-finally 블록
- throws 키워드
- 예외 처리
- 항해99
- til
- 일반 예외
- 실행 예외
- 개발자취업
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 예외
- 예외클래스
- 다중 catch 블록
- Today
- Total
innn
static 메서드와 인스턴스 메서드 본문
인스턴스 메서드
- 인스턴스 생성 후 '참조변수.메서드이름()'으로 호출 (왜냐? 객체 생성하니까. 생성시 참조변수를 활용해서 호출해야함)
- 인스턴스 멤버(iv, im)와 관련된 작업을하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용 가능
스태틱 메서드(클래스 메서드)
- 객체 생성없이 ex. Math.radndom() '클래스 이름.메서드이름()'으로 호출
- 인스턴스 멤버(iv, im)와 관련 없는 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용불가
= > 결론 iv 사용여부에 따라 달려있다. (사용하면 인스턴스 메소드, 사용안하면 스태틱 메소드)
a, b는 인스턴스 변수
클래스 전체에서 사용할 수 있음.
static 메소드의 매개변수 (a,b)는 lv
유효범위가 클래스 메서드 내에서만 가능하다.
return의 ab는 가까운 쪽에 속한다. 즉 lv임.
스태틱 메서드라는 건 그냥 객체 생성없이 호출 가능한 것이라는 것만 알고 있지 그 이상은 모른다.
본인이 만들때 스태틱을 붙일지 말지를 고민해야함.
언제 붙여? iv를 사용하지 않을때 붙임
iv를 사용하면 스태틱을 못 붙여. 왜냐면 객체는 iv를 묶어놓은 것이니까.
인스턴스 메서드를 호출하려면 왜 객체를 생성하냐? 왜냐면 iv를 가지고 작업을 하니까 필요한 것이다.
static 메서드는 공통으로 쓰냐마냐 가 아니라.\
인스턴스 변수를 안 쓸 때 붙이는 것임.
결론 : static 메서드는 static 메소드를 호출 가능하다.
static 메서드는 인스턴스 변수 사용 불가능하다
인스턴스 변수는 객체를 생성해야 사용 가능하기 때문이다.
왜? 객체라는 말 자체가 인스턴스 변수(멤버)를 묶어 놓은것이라. 이를 먼저 생성을 해야 사용이 가능한 것이다.
static 메서드는 같은 이유로 인스턴스 메서드 호출이 불가능하다.
iv, im(인스턴스 멤버) 를 쓸 수 없는 이유는 static 메서드 호출은 객체 생성 없이 항상 호출 가능하기 때문에,
객체 생성없이 iv 묶음인 객체의 멤버를 사용할 수 없는 것이다.
'JAVA > 자바의 정석 기초편_남궁성(2020)' 카테고리의 다른 글
단일 상속, Object 클래스 (0) | 2022.07.06 |
---|---|
포함 관계(Composite, has-a, 90%가 포함 관계!!) (0) | 2022.07.06 |
상속관계 (0) | 2022.07.06 |
생성자(Constructor) (0) | 2022.06.26 |
오버로딩(Overloading) (0) | 2022.06.25 |