JAVA_22_static 메소드 & 인스턴스 메소드

charl hi·2021년 8월 12일
0

JAVA

목록 보기
22/53

static 메소드 = 클래스 메소드

  • static이 붙은 메소드
  • ✨객체생성 없이✨(->참조변수 없이)✨
    -> 💖클래스명.메소드명(); 으로 호출
    -> Math.random();, Math.round(); ...
  • ✨✨✨✨✨iv 사용 X
  • ✨✨✨✨✨this 사용 X

인스턴스 메소드

  • static이 없는 메소드
  • ✨✨인스턴스 생성 후
    -> 🎆참조변수.메소드명(); 으로 호출
  • ✨✨iv 사용 O

static 을 붙이는 경우

1. static 메소드

: ✨✨✨✨인스턴스 변수iv를 안쓸 때
-> 주로 ✨매개변수lv를 받아서 쓴다.

2. static 변수

: 속성(멤버 변수)중에서 공통 속성일 때



.인트턴스메소드static메소드비고
ivOX객체생성필수
cv언제든O언제든O객체생성안해도됨
매개변수Δ보통O.
인스턴스메소드OX
static메소드언제든O언제든O

(O) static 메소드 -> static 변수 / static 메소드 호출

✨✨ (X) static 메소드 -> 인스턴스 변수 / 인스턴스 메소드 호출 ✨✨

예제 다시 연습

자바정석

이거 직접 작성하자.


class MyMath2 {
	
	long a, b;  //인스턴스 메소드
	
	long instanceadd() {   //인스턴스 메소드
		return a+b;	
	}
	
	static long staticadd(long a, long b) {    //static 메소드, 지역변수lv
		return a+b;    //지역변수lv
        //iv는 static메소드가 사용 못함!!!
	}
}


public class MyMathTest2 {

	public static void main(String[] args) {
		// static 공부하기
		// static은 요렇게
		System.out.println("static 메소드 : "+MyMath2.staticadd(20L, 10L));
		// 객체없이 바로 호출

		// 인스턴스는 요렇게
		MyMath2 mm = new MyMath2();    // 객체 생성 필수
		mm.a = 22L;    // 객체 생성 후 참조변수로 인스턴스 변수 불러옴
		mm.b = 11L;    // 참조변수.인스턴스변수
		System.out.println("인스턴스 메소드 : "+mm.instanceadd());
		// 참조변수.인스턴스메소드

	}

}

static 메소드 : 30
인스턴스 메소드 : 33



Ref

0개의 댓글

관련 채용 정보