728x90
반응형
package chap6;
/*
* 클래스
* 속성 - 멤버변수 - 클래스 변수 : static
* - 인스턴스 변수
*
* 기능 - 멤버메서드 - 클래스 메서드 : static
* - 인스턴스 메서드
* 사용 준비 완료 : 변수 : 저장공강 할당
* 메서드 : 호출가능 상태
*
* 클래스멤버(static) : 클래스 정보 로드시 사용 준비 완료.
* 클래스명.멤버명
* 인스턴스멤버 : 객체화시 사용 준비 완료.
* 참조변수명.멤버명
*
* 클래스멤버에서 인스턴스멤버 호출시 직접호출 불가능. 객체화가 필요함.
*/
public class MemberCallEx1 {
static int cv1 = 10; //클래스변수
static int cv2 = cv1; //클래스변수간 호출 (정상)
int iv1 = 100; //인스턴스변수
int iv2 = iv1; //인스턴스변수간 호출 (정상)
int iv3 = cv1; //인스턴스변수에 클래스변수값을 저장 (정상)
// static int cv3 = iv1; //클래스변수에서 인스턴스변수 호출시 오류 발생
static int cv3 = new MemberCallEx1().iv1; //클래스변수에서 인스턴스변수 호출시 객체화 필요
void method1() { //인스턴스메서드
System.out.println("cv1+cv2=" + (cv1+cv2)); //클래스변수 호출 (정상)
System.out.println("iv1+iv2=" + (iv1+iv2)); //인스턴스변수 호출 (정상)
}
static void method2() { //클래스메서드
System.out.println("cv1+cv2=" + (cv1+cv2)); //클래스변수 호출 (정상)
// System.out.println("iv1+iv2=" + (iv1+iv2)); //인스턴스변수 호출시 오류 발생
MemberCallEx1 m = new MemberCallEx1(); //인스턴스변수 호출시 객체화 필요
System.out.println("iv1+iv2=" + (m.iv1+m.iv2));
}
public static void main(String[] args) { //클래스 메서드
//main메서드에서 method1(), method2() 메서드 호출하기
// new MemberCallEx1().method1(); //방법1
MemberCallEx1 m = new MemberCallEx1(); //방법2
m.method1();
method2();
}
}
728x90
반응형
'study > Java' 카테고리의 다른 글
[Java] 20. 오버로딩 메서드의 선택기준, 오버로딩 조건 (0) | 2022.03.18 |
---|---|
[Java] 20. 오버로딩 (0) | 2022.03.18 |
[Java] 19. Factorial (0) | 2022.03.18 |
[Java] 19. 클래스 구현 (0) | 2022.03.18 |
[Java] 18. TEST5 풀이 (다음 결과가 출력되도록 동물클래스(Animal)와 구동클래스(Test0310_5)를 구현하기 ) (0) | 2022.03.17 |