1.제일 쉬운 클라스 변수부터 알아보자
말그대로 메소드가 아니라 클라스에 속해있는 변수이다 !
public class Concept {
public int b; //지역변수 or 클라스 변수
public static void main(String[] args){
}
}
클라스 변수는 지역변수라고 부르기도 한다.
2.인스턴스 변수는 스코프{} 안에서 쓸 수 있는 모든 변수를 말한다.
가령 for문을 만들 때 for(int i=0;i<java.length();i++) 이런식으로 만들 때도 i는 for문의 스코프 안에서만 쓸 수 있기 떄문에 인스턴스 변수라고 부른다.
instance의 영문 뜻은 an example or single occurrence of something.
대충 어떤 것의 상황같은 것을 말하는데.. 의역해서 생각해보면 스코프 안에 있는 것도 어떤 것의 상황이 기때문에 instance 변수라고 부르는 듯 하다.
public class Concept {
public int b; //지역변수 or 클라스 변수 or 인스턴스 변수
public static void main(String[] args){
}
}
위의 상황도 지역변수,클라스 변수로 부를 수 있지만 Concept라는 스코프 안에서 사용할 수 있기 때문에 인스턴스 변수라고 부를 수 있다.
3.static 변수는 클라스의 변수이며, 스코프 밖에서 사용 및 값을 줄 수 있다.
이전에 static메소드와와 static 변수관련 자세히 설명해 놓았다
https://puddingdev.tistory.com/3?category=995208
ConceptA라는 클라스에 static변수를 만들어보았다.
public class ConceptA {
public int b; //클라스 변수
public static int conceptStatic; // static , 스코프 밖에서 사용 가능
public static void main(String[] args){
}
}
이제 Concept라는 다른 클라스를 가보자
public class Concept {
public static void main(String[] args){
//둘다 static변수이며 ConceptA라는 클라스를 가져와서 값을 줄 수 있다.
ConceptA.concepetStatic = 0;
ConceptA.main(args);
//ConceptA에 만들어두었던 b는 static이 아니라서 , 인스턴스 변수를 만들고 접근 할 수 있음
ConceptA name = new ConceptA();
name.b=0;
ConcepA nameTwo = new ConceptA();
nameTwo.b = 10;
}
static변수인 conceptStatic = 0;는 name이랑 nameTwo 객체 모두에서 0으로 가져간다
하지만 b는 인스턴스 변수이기 떄문에 name에서는 0이고 nameTwo에서는 10이다.
'Java' 카테고리의 다른 글
자바의 자료구조-Set,HashSet 개념 및 사용법 (0) | 2022.01.07 |
---|---|
Stringbuffer 클래스 (0) | 2022.01.07 |
Arrays.asList()란 (0) | 2022.01.07 |
두 변수의 값 바꾸기 (swap) (0) | 2022.01.07 |
Try-catch 예외처리 (0) | 2022.01.07 |
댓글