public class Ex03_class{
public static void main(String[] args) {
// 일반변수 (지역변수)
int x;
x=10;
System.out.println(x);
// 클래스 변수 - 객체가 생성되지 않아도 언제나 접근가능.
// 클래스 변수는 객체생성과 상관없이 하나의 메모리만 할당 받고,
// 클래스가 메모리에서 사라질 때 메모리가 해제된다.
// "클래스명.클래스변수" 형식으로 접근
System.out.println(Test3.c);
// System.out.println(Test3.a); 는 컴파일 오류이다 a가 메모리 할당을 받지 않았기 때문이다.
// 인스턴스 변수는 객체가 메모리 할당이 된 이 후에 접근 가능하다.
// "객체명.인스턴스변수" 형식으로 접근
Test3 0b = new Test3();
System.out.println(ob.a);
// System.out.println(ob.b); 컴파일오류.
// private 필드는 외부 클래스에서 접근불가능하고 해당 클래스에서만 접근가능하다.
ob.write();
// 인스턴스 메소드 실행
}
}
class Test3{
// 필드-인스턴스 변수 : 객체를 생성해야 접근할 수 있는 변수
int a;
// 디폴트 : 동일한 패키지에서는 접근할 수 있다.
private int b=10;
// private : 해당 클래스에서만 접근할 수 있다.
// 필드 - 클래스변수 : 객체 생성과 상관없이 접근할 수 있다.
// 클래스가 메모리에 로딩되는 순간 메모리 할당
public static int c=20;
// public : 어디에서나 접근 할 수 있다.
// static이 붙으면 클래스변수
public void write(){
System.out.println(a+" : "+b+ " : " +c);
}
}
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0713_Ex05_class : 레퍼런스 변수 선언 및 메모리 할당 (0) | 2021.07.14 |
---|---|
0713_Ex04_class : 클래스에 대해 알아보기 (0) | 2021.07.14 |
0713_Ex02_class : 클래스에 대해 알아보기 (0) | 2021.07.13 |
0713_Ex01_class : Bank 클래스의 객체 생성 (0) | 2021.07.13 |
0713_Ex03_array : 2차원 배열 복사 (0) | 2021.07.13 |