필드표현식
[접근제한자] [예약어] class 클래스명{
[접근제한자] [예약어] 자료형 변수명 [=초기값];
}
1. 변수선언 위치에 따른 구분
>>변수 구분
- 전역변수 : 클래스영역 안에 바로 선언한 변수 => 클래스 내에서 어디서든 전역으로 사용가능
- 지역변수 :클래스 영역내의 어떤 특정한 구역({})에 선언된 변수 => 선언된 해당 그지역에서만 사용가능
*특정한 구역 : 메소드 {},제어문(if,for)등등
1. 전역변수
- 멤버변수 == 인스턴스변수
생성시점 : new 연산자를 통해서 객체 생성시
소멸시점 : 객체 소멸시 같이 소멸
- 클래스 변수 == static변수
생성시점 : 프로그램 실행과 동시에 무조건 메모리영역(static)에 할당
소멸시점 : 프로그램 종료될때 소멸
2. 지역변수
생성시점: 지역변수가 속해있는 특정한 구역({}) 실행(호출)시 메모리 영역에 할당
소멸시점: 특정한 구역([])종료시 소멸
public class FieldTest1 { //클래스 영역 시작
private int global; // 전역변수
public void test(int num) {//메소드 영역 시작
//매개변수 == 지역변수
int local = 100; //지역변수
//멤버변수 : 이 객체 생성시 JVM이 기본값으로라도 초기화
System.out.println(global);
//매개변수 : 이 메소드 호출시 반드시 값이 전달되어 올 것이기 때문에 초기화
System.out.println(num);
//지역변수 : 내가 초기화를 직접하지않으면 텅 빈상태, 출력 불가
System.out.println(local);
FieldTest2 ft2 = new FieldTest2();
System.out.println(ft2.pub);
System.out.println(ft2.pro);
System.out.println(ft2.def);
//System.out.println(ft2.pri); x
}//메소드 영역 끝
}//메소드 영역 끝
2. 필드에서 사용가능한 접근제한자 4가지
* public => 어디서든(같은패키지, 다른패키지 모두) 접근 가능
* protected => 같은 패키지 내 접근가능, 다른 패키지일 경우 상속구조*에서 접근가능
* default => 같은 패키지에서만 접근가능, 다른 패키지 절대 불가능
* private => only 해당 클래스에서만 접근 가능
>>>위에서 부터 아래로 내려갈 수록 접근 범위가 좁아짐
public String pub ="public";
protected String pro = "protected";
String def = "default";
private String pri = "private";
public static String sta = "static_FieldTest2";
3. 상수 필드
접근제한자 [예약어] 자료형 변수명;
-static은 공유의 개념
-static이 붙은 것은 프로그램 실행과 동시에 메모리의 static 영역에 올라감
-프로그램 실행시 딱 한번 메모리상에 올려두고 여기저기서 가져다 쓸 수있음
-final은 상수의 개념 (한번 지정된 값 변경 불가)
*상수 필드 (static final) : 프로그램 시작시 값이 저장되면 더이상 변경되지 않고 공유하면서 사용할 목적
public final static String STAFIN = "static final";
'JAVA' 카테고리의 다른 글
6_6. 객체 _ 메소드 (0) | 2022.10.27 |
---|---|
6_5. 객체_ 생성자 (0) | 2022.10.27 |
6_3. 객체 _클래스 선언부 (0) | 2022.10.26 |
6_2 . 객체 캡슐화 (setter/getter) (0) | 2022.10.26 |
6_1. 객체란 (0) | 2022.10.26 |