카테고리 없음

접근제어자 예제

bbangduck 2023. 7. 31. 12:11

 

변수종류 자동초기화 초기화 시점 메모리영역 소멸시점
스태틱변수 o 클래스로드 시 메서드 클래스언로드시
인스턴스변수 o 객체 생성 시 객체소멸시
매개변수/지역변수 x   스택 메서드종료시
class A{
	static int si; // 스태틱 변수
	int i; //인스턴스 변수
	
   //스태틱 메서드
	static void sm() { //인스턴스변수, this 사용불가
		//인스턴스 변수 사용가능
		System.out.println(si);
		
	}
    
    //인스턴스 메서드
	void m(){
		System.out.println(this.i); //인스턴스 변수 사용 가능
	}
}


public class StaticTest {
	public static void main(String[] args) {
		System.out.println(A.si);
		//System.out.println(A.i); 객체 생성하지 않고 인스턴스 변수는 접근 불가능
		
		A a1, a2;
		a1 = new A();
		a2 = new A();
		
		System.out.println(a1.i);//0
		System.out.println(a2.i); //0
		
		//System.out.println(a1.si); //
		//System.out.println(a2.si);
		System.out.println(A.si);
		
		a1.i++;
		a1.si++;
		
		System.out.println(a1.i); //1
		System.out.println(a1.si); //1
		System.out.println(A.si); //1  
		System.out.println(a2.i); //0
		System.out.println(a2.si); //1
        
        //스태틱 변수는 공유함을 알 수 있음
		
		a1.m();
		//A.m() 불가능한 호출,  객체생성 후에 호출 가능
		
		
	}
}