개발 공부/JAVA

class 변수, 메소드/ 유효범위

공부하는개발자_ 2023. 4. 12. 14:37


Class 변수
1) 모든 Instance에 똑같은 값을 가진다.
2) instance를 생성하지 않고도 class에 직접 접근해서 값 사용가능

Instance 변수 :Instance마다 변수가 달라진다.


sum과 avg는 객체에따라 다른 결과를 준다.
그러나 PI는 모든객체가 똑같은 값을 갖으면 된다.

모든 instance가 공유하는 변수를 만들 수 있다면 편리하다
이 역할을 하는 것이 class변수이다.
-  class에 따라 만들어진 모든 instance는 class변수가 가지고 있는 값을
자연스럽게 갖고있는 상태가 된다. 


Class변수에 접근하는 방법은 instance, class를 통해 가능하다.



Class 메소드
class 메소드는 class에 직접 접근해서 실행 가능

용어
인스턴스 변수 : non static field
클래스 변수 : static field

 

 

 

유효범위 (scope)
1.전역변수 (gloabal variables)
static int i; 
static void a(){ 
i=0; 
}
선언 -> 클래스 내 모든 메소드, for문 즉, 모든 {} 안에서 접근할 수 있는 전역변수가 되는 것


2. 지역변수
static void a() { 
int i = 0;
}

- int i 라는 변수는 메소드 a()안에서 생성된 변수니까 이 메소드 안에서만 작동하는 것
 -> 해당 중괄호 안에서만 작동함
- i에 int 붙여준다는 건 i가 for문 {} 안에서만 유효한 지역변수가 된다는 뜻
 -> 밖에서는 작동 안 함


 

벌써 어려워져서 이해 안 되는 것은 여러번 반복해서 보고 있는데,

이게 제대로 이해한지도 모르겠는... 

 계속 하다보면 완벽히 이해되는 순간이 오겠지!!