Notice
Recent Posts
Recent Comments
관리 메뉴

Developer Gonie

[2주차] 27. 클래스 관련 변수들(멤버변수=인스턴스변수, static변수=클래스변수)* 본문

K-DigitalTraining 강의/1. Java

[2주차] 27. 클래스 관련 변수들(멤버변수=인스턴스변수, static변수=클래스변수)*

이대곤 2022. 5. 20. 16:55

* 아래의 두 변수들은 초기화 해주지 않아도 자동으로  0으로 초기화 되지만(boolean형 변수는 false로)

  일반 지역변수의 경우는 자동으로 초기화 되지 않으므로, 초기화 해준 뒤에 사용해야 한다.

 

* 멤버변수 = 인스턴스변수

  '멤버변수'란 클래스 내부의 변수들인데, 인스턴스를 만들어야 변수에 대한 공간이 할당되므로 '인스턴스 변수'라고
   부르기도 함.

 

* static변수 = 클래스변수

   객체를 생성하기 전부터 생성되어, 같은 클래스로 생성된 모든 객체가 공유하게 되는 변수인데,
   클래스 이름으로 접근하는게 일반적이라서 '클래스변수'라고 부르기도 한다.
   객체를 통해서도 접근해도 실행은 되지만 이 변수는 하나의 객체에 한정되어 존재하는게 아니기 때문에
   
경고 메세지가 뜰 것임.

코드

class Person {
	// 멤버변수(=인스턴스변수)
	String name;
	int age;
	double height;

	// static변수(=클래스변수)
	static String nation;
}

public class Ex05_01_클래스 {
	public static void main(String[] args) {
		
		Person.nation = "Korea";  // 아무런 객체를 생성하지 않았는데 접근 가능한 변수
		
		Person p1 = new Person();
		p1.name= "윤아";
		p1.age = 30;
		p1.height = 159.7;
		
		Person p2 = new Person();
		p2.name="박보검";
		p2.age = 23;
		p2.height = 189.3;
		
		System.out.println(p1.name);
		System.out.println(p1.age);
		System.out.println(p1.height);
		System.out.println(p1.nation); // 경고는 뜨지만 실행은 됨
		
		System.out.println();
		
		System.out.println(p2.name);
		System.out.println(p2.age);
		System.out.println(p2.height);
		System.out.println(p2.nation); // 경고는 뜨지만 실행은 됨
	}
}

실행결과

윤아
30
159.7
Korea

박보검
23
189.3
Korea

 

Comments