class Test4 {
	// 인스턴스 변수. 객체가 생성되어야 사용가능.
    // 객체가 생성될 때 ! 메모리가 할당된다.
    int a;
    private int b=10;
    
    // 클래스변수. 객체생성과 상관없이 사용가능.
    // 클래스가 로딩될 때 메모리 할당
    public static int c=100;
    
    // 인스턴스 메소드. 객체가 생성되어야 사용가능.
    public void print(){
    	System.out.println(a+ " : " +b + " : " +c);
    }
    
    // 클래스 메소드. 객체 생성과 상관없이 사용 가능.
    public static void write(){
    	// System.out.println(a); 컴파일 오류. 
        // 클래스 메소드에서는 인스턴스 변수나 인스턴스 메소드를 호출 할 수 없다.
        System.out.println(c)
    }

}

 

public class Ex04_class {

	public static void main(String[] args) {
    	System.out.println(Test4.c);
        // 클래스 메소드 접근
        // "클래스명.메소드명([인수])" 형식으로 접근
     	Test4.write();
        
        // 인스턴스 변수, 인스턴스 메소드는 객체 생성 후 접근
        Test4 tt = new Test();
        tt.a=50;
        tt.print();
        
        Test4 tt2 = new Test4();
        tt2.print();
            
    }

}

인스턴스 변수와 인스턴스 메소드

클래스 변수와 클래스 메소드의 차이를 알아보자

 

인스턴스 변수와 인스턴스 메소드는 객체 생성 후 접근이 가능하다.

메모리 할당이 되어있지 않기 때문이다.

 

클래스 변수와 클래스 메소드는 객체를 생성하지 않고 접근이 가능하다.

클래스가 로딩 될 때 메모리를 할당하기 때문이다.

+ Recent posts