package ch06;

public class MemberCallEx1 {

	static int cv1 = 10;
	static int cv2 = cv1;			// 클래스멤버간 호출
	int iv1 = 100;
	int iv2 = iv1;				// 인스턴스멤버간 호출
	int iv3 = cv1;				// 클래스멤버 호출 (in 인스턴스멤버)

//	static int cv3 = iv1;			// 인스턴스멤버 호출 (in 클래스멤버) --> 불가(인스턴스를 생성해야됨)
	static int cv3 = new MemberCallEx1().iv1;

	public static void main(String[] args) {
//		cv2 = iv1;			// main메소드(클래스멤버)에서 인스턴스멤버 접근 불가
		cv2 = new MemberCallEx1().iv1;

//		iv1 = cv2;			// main메소드(클래스멤버)에서 인스턴스멤버 접근 불가
		new MemberCallEx1().iv1 = cv2;

//		method1();			// main메소드(클래스멤버)에서 인스턴스멤버(메소드) 사용 불가
		new MemberCallEx1().method1();

		method2();
	}

	void method1() {
		System.out.println(cv1 + cv2);
		System.out.println(iv1 + iv2);
	}

	static void method2() {
		System.out.println(cv1 + cv2);
		
//		System.out.println(iv1 + iv2);	// 클래스메소드에서 인스턴스멤버 사용 불가
		MemberCallEx1 m = new MemberCallEx1();
		System.out.println(m.iv1 + m.iv2);
	}

}
>
110
200
110
200

 

 

▲수학의 대입법처럼 객체를 형성해서 변수에 넣을수 있음.(12번째줄)

MemberCallEx1 m = new MemberCallEx1();
static int cv3 = m.iv1;

						↓

static int cv3 = new MemberCallEx1().iv1;

 

 

'Langauge > JAVA' 카테고리의 다른 글

내부 클래스  (0) 2020.05.21
오버로딩 vs 오버라이딩  (0) 2020.05.15
기본형 매개변수와 참조형 매개변수  (0) 2020.05.14
컬렉션  (0) 2020.05.10
Eclipse 단축키  (0) 2020.04.17

+ Recent posts