/ JAVAJUNGSUK

Ch6-26~29. static

자바의 정석 기초편

0. 목차



Chapter6. 객체지향 프로그래밍Ⅰ

Ch6 - 26. static 메서드와 인스턴스 메서드

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

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

Ch6 - 29. 메서드 간 호출과 참조



Ch6 - 26. static 메서드와 인스턴스 메서드


▶ 인스턴스 변수(iv)의 사용 여부

▷ iv 사용 = 인스턴스 메서드
▷ iv 미사용 = static(클래스) 메서드


▶ static 메서드란?

▷ = 클래스 메서드
▷ 메서드 앞에 static 붙은 것
▷ 객체 생성 없이 클래스 이름.메서드 이름()으로 호출
Math.random()
Math.round()
// 객체 생성 없이 사용
▷ 인스턴스 멤버(iv,im)와 관련없는 작업을 하는 메서드
▷ 메서드 내, 인스턴스 변수(iv) 사용 불가


▶ 인스턴스 메서드란?

▷ 메서드 앞에 static 붙지 않은 것
▷ 인스턴스 생성 후, 참조변수.메서드 이름()으로 호출
▷ 인스턴스 멤버(iv, im)와 관련 된 작업을 하는 메서드
▷ 메서드 내, 인스턴스 변수(iv) 사용 가능



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


▶ static 메서드와 인스턴스 메서드 생성


▶ static 메서드와 인스턴스 메서드 호출




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


▶ static을 언제 붙여야 할까? - 변수

▷ 속성(멤버 변수) 중에서 공통 속성에 static을 붙임
class Card {
    // 개별 속성 : iv
    String sign; // 기호
    int number; // 숫자

    // 공통 속성 : cv
    static int width = 100; // 폭;
    static int height = 230; // 높이;
}


▶ static을 언제 붙여야 할까? - 메서드

▷ 인스턴스 멤버(iv, im)을 사용하지 않는 메서드에 static을 붙임
class Hello {
	
	long a, b;
	
	long add() { return a + b; }   // a, b = 인스턴스 변수
	static long add(long a, long b) { return a + b;	}   // a, b = 지역 변수
}



Ch6 - 29. 메서드 간 호출과 참조


▶ static 메서드는 인스턴스 변수(iv)를 사용 불가


▶ static 메서드는 인스턴스 메서드(im)를 사용 불가



▶ static 메서드는 static 메서드 호출가능?

▷ 네


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

▷ 아니요


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

▷ 아니요


▶ 왜 static 메서드는 인스턴스 멤버를 사용할 수 없는가?

▷ static 메서드는 객체 생성없이 항상 사용가능, 그래서 객체(iv)가 없을 수도 있어서