환상상상속상 2020. 3. 13. 11:58

1.

static 을 사용하면 객체를 생성하지않고 변수나 함수사용이 가능하다.

 

= 객체를 사용하지않아도 되니깐 속도가 빠르다.

 

2.

클래스를 만들때, 객체간에 공통적으로 통하는 것을 static변수로 설정한다.

(각 인스턴스는 서로 독립적이기때문에 다른값을 가지고 있지만 공통적으로 통하는 것)

 

3.

static 메소드는 인스턴스의 변수를 사용할 수 없다.

static은 언제나 사용가능한 반면, 인스턴스는 생성되었냐 안되었냐에 따라서 다르기 때문이다.

 

4.

메소드 내에서 인스턴스 변수를 사용하지않으면,  static 메소드로 사용하는 것이 낫다.

 

 

인스턴스변수: 각자 독립된 저장공간

클래스변수(static): 서로 공유된 저장공간

 

 

 

[정리]

 

*클래스 변수

-> 인스턴스들이 각각 독립적이지만 공통된 요소의 경우 클래스변수를 사용한다.

(ex.) 카드의 넓이는 클래스 변수, 카드의 하트,다이아몬드는 인스턴스 변수

 

*클래스 메소드

-> 인스턴스 변수를 사용하지 않는 메소드라면 클래스 메소드로 설정한다. = 객체생성없이 바로 호출가능

-> 클래스 변수만을 사용하는 경우

(ex.) math메소드 (인스턴스 변수가 필요없고, 매개변수로 받기 때문이다.)

 

*인스턴스 메소드, 인스턴스 변수는 객체가 생성되어야 사용이 가능하다.

 

 

[참고]https://vaert.tistory.com/101

 

[Java] Static 키워드 바로 알고 사용하자

자바를 한번쯤 공부해본사람이라면 static키워드를 모르지는 않을 것입니다. 하지만, 바르게 알고 있는 사람들은 그리 많지 않습니다. 자바경력자를 면접볼 때 static키워드에 대해서 질문하곤 합니다. 면접관 :..

vaert.tistory.com