- 클래스와 인스턴스의 호출
클래스
속성 - 멤버 변수 - 클래스 변수 : staitc
- 인스턴스 변수
기능 - 멤버 메서드 - 클래스 메서드 : static
- 인스턴스 메서드
사용준비 완료 : 변수 : 저장공간 할당
메서드 : 호출 가능 상태
클래스 멤버(static) : 클래스 정보 로드시 사용 준비 완료.
클래스명.멤버명
인스턴스 멤버 : 객체화시 사용준비 완료.
참조변수명.멤버명
클래스 멤버에서 인스턴스 멤버 호출 시 직접 호출 불가능. 객체화가 필요함.
📌
package chap6;
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); // 클래스 멤버 호출 100
System.out.println(iv1 + iv2); // 인스턴스 멤버 호출 10
}
static void method2() { // 클래스 멤버
System.out.println(cv1 + cv2); // 클래스 멤버 호출 110
// System.out.println(iv1+iv2); //오류 : 인스턴스 멤버 호출시 객체화가 되어야 호출 가능
MemberCallEx1 m = new MemberCallEx1();
System.out.println(m.iv1 + m.iv2); // 200
}
public static void main(String[] args) { // 클래스 멤버
// cv2 = iv1; //클래스 멤버에서 인스턴스 멤버 호출시 객체화 필요
cv2 = new MemberCallEx1().iv1;
System.out.println(cv2); // 110
// iv3 = cv2; //메인메서드인 클래스 메서드애서 iv3 변수 접근 불가.
new MemberCallEx1().iv3 = cv2;
System.out.println(new MemberCallEx1().iv3); // 200
// method1(); //main 클래스 멤버에서 인스턴스 멤버 호출.
// main 클래스 멤버에서 인스턴스 멤버 호출시 객체화 필요
new MemberCallEx1().method1();
method2();
}
}
- 매개변수의 자료형
📌
package chap6;
/*
* 매개변수의 자료형
* 기본형 매개변수
* 참조형 매개변수
*/
class Value{
int val;
}
public class ParameterEx1 {
public static void main(String[] args) {
Value v = new Value();
v.val = 100;
change1(v.val); //값만 전달.
System.out.println("change1() 이후:"+v.val);
change2(v); //참조값 전달.
System.out.println("change2() 이후:"+v.val);
}
static void change1(int val) {
val += 100;
System.out.println("change1() :"+val);
}
static void change2(Value v) {
v.val += 100; //main에서 생성된 객체의 참조값으로 객체의 값을 수정.
System.out.println("change2() ;"+v.val);
}
}
'수업(국비지원) > Java' 카테고리의 다른 글
| [Java] chap6 : 클래스와 객체 - 생성자, 생성자 오버로딩 (0) | 2023.04.15 |
|---|---|
| [Java] chap6 : 클래스와 객체 - 오버로딩, 오버로딩 메서드의 선택기준,오버로딩조건 (0) | 2023.04.15 |
| [Java] chap6 : 클래스와 객체 - Stack영역과 재귀함수 (0) | 2023.04.15 |
| [Java] chap6 : 클래스와 객체 - 클래스 구현 (0) | 2023.04.15 |
| [Java] chap6 : 클래스와 객체 - 원의 넓이, 둘레 구하기 (0) | 2023.04.15 |