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 |