신입개발자

필드와 지역변수 본문

프로그래밍 언어/자바

필드와 지역변수

dks_a 2022. 5. 8. 18:40
package pk20;

//지역변수는 스택에
//필드는 힙에

//첫째 클래스
class A{ // 클래스 멤버들은 모두 힙영역에 저장됨
	// 필드 : 클래스내부 & 메소드 외부에 위치하는 변수, 힙영역(값)에 저장
	int f1 = 10;
	int f2; //힙은 자동으로 초기화 시켜줌(false, 0, 0.0, null)
	/*
	 * ① boolean 타입 배열 항목의 기본 초기값은 false이다.
	 * ② 정수 타입 배열 항목의 기본 초기값은 0이다. 
	 * ③ 실수 타입 배열 항목의 기본 초기값은 0.0f 또는 0.0이다.
	 * ④ 참조 타입 배열 항목의 기본 초기값은 null이다.
	 * */
	
	// 메소드 : 힙영역(주소) & 메소드영역(정의)
	void print1() {
		int lv1 = 20; // 메소드내 변수는 지역변수, 스택영역(값), 이클립스에서 색상으로 필드와 구분됨
		// int lv2;
		
		System.out.println("lv1 = " + lv1);
		// System.out.println("lv2 = " + lv2); // 에러, 스택영역 지역변수는 초기화 필수
		print2(30); // 메소드간 호출 가능
		
	}
	void print2(int lv3) {
		int lv4 = lv3 * 2;
		System.out.println("lv4 = " + lv4);
		System.out.println();
	}
	
	
}

//둘째 클래스
public class 필드와지역변수 {

	public static void main(String[] args) {
		A a = new A();
		//필드
		System.out.println("a.f1 = "+ a.f1); //10
		System.out.println("a.f2 = "+ a.f2); //0, 필드는 자동 초기화됨
		
		//메소드
		a.print1(); //lv1 = 20
		/*void print1() {} 안에 print2(30);
		 lv1 = 20
		 lv4 = 60 */
		
		// a.print2(30); // lv4 = 60

	}

}

 

'프로그래밍 언어 > 자바' 카테고리의 다른 글

기본형 호출과 참조형 호출  (0) 2022.05.08
메소드  (0) 2022.05.08
클래스와 객체  (0) 2022.05.08
문자열메소드2  (0) 2022.05.08
문자열메소드1  (0) 2022.05.08
Comments