💾 Java Programming
Mid-term Exam
🆀 문제 1.
다음 코드에서 각 변수의 출력 결과 예측하기
public class Object {
int size;
public static int objectCount = 0;
public Object(int size) {
this.size = size;
objectCount++;
}
public void sample(Object oa, Object ob, int size) {
this.size = size;
oa.size = this.size;
ob = new Object(4);
size = 6;
}
public static void main(String[] args) {
Object o1 = new Object(1);
Object o2 = new Object(2);
Object o3 = new Object(3);
int size = 5;
o1.sample(o2, o3, size);
System.out.println(o1.size); 5
System.out.println(o2.size); 5
System.out.println(o3.size); 3
System.out.println(size); 5
System.out.println(object.pizzaCount);
}
}
🅰 정답
5 ► sample 메서드에서 `this.size = size;`
5 ► sample 메서드에서 `oa.size = this.size;`
3 ► sample 메서드에서 `ob = new Object(4);`로 o3과 관련 없는 새로운 객체를 생성하므로 o3.size는 변경되지 않고 초기 값인 3을 유지
5 ► size = 6;은 sample 메서드에서만 유효, 5로 유지
🆂 풀이
- (line2) `int size;` : 인스턴스 변수
클래스가 생성한 각 객체의 size를 저장.
인스턴스 전체에서 접근 가능하며 각 인스턴스마다 별도로 존재함.
- (main 함수) `int size = 5;` : 지역변수
main() 메서드 안에서만 쓰이는 임시 변수.
메서드가 끝나면 사라지며 클래스의 다른 부분에서 접근할 수 없음.
| 특성 | 인스턴스 변수 | 정적 변수 | 지역 변수 |
| 선언 위치, 소속 | 클래스 내부&&메서드 외부에 선언, 객체 인스턴스에 소속 | static로 클래스 내부에 선언, 클래스 자체에 소속 | 메서드 혹은 블록 내부에 선언, 해당 메서드나 블록{}에 소속 |
| 초기화, 생성 주기 | 객체 생성 시 초기화, 객체가 존재하는 동안 유지 | 클래스 로드 시 한 번만 초기화, 프로그램 종료 시까지 유지 | 메서드 호출 시 생성, 메서드 실행 동안만 유지 |
| 접근 방식, 공유 여부 | 객체 참조를 통해 접근(o1.size), 각 인스턴스별로 개별 값 유지 | 클래스명으로도 접근(Object.objectCount) 가능, 모든 인스턴스가 공유 | 메서드 내부에서 직접 접근, 다른 메서드나 인스턴스에서 접근 불가 |
| 주요 용도 | 객체마다 개별 상태 저장 | 모든 객체가 공유해야 하는 값이나 상태 저장 | 메서드 실행 중 임시 데이터 저장 |
🆀 문제2.
Compareable Class의 compareTo()를 오버라이드하여 내림차순 정렬하기
🆂 풀이
`implements Comparable<T>`
`compareTo()` 함수는 양수를 반환하면 큰 것으로, 음수를 반환하면 작은 것으로 판단
- this(현재 객체) - o(비교 대상) : 오름차순 정렬
- o(비교 대상) - this(현재 객체) : 내림차순 정렬
@Override
public int compareTo(Object o) {
return o.number - this.number;
}
반응형
'과목 일반' 카테고리의 다른 글
| [고급문제해결] 🎓 중간고사 오답노트 (0) | 2025.04.27 |
|---|---|
| [시스템프로그래밍] 0313 Review - OT (0) | 2025.03.16 |
| [자료구조] 🎓 기말고사 오답노트 - Heap Sort, BST (2) | 2024.12.30 |
| [자료구조] 🎓 중간고사 오답노트 (0) | 2024.12.30 |
| [자료구조] 0930 Review - 자기 참조 구조체 Node 문제 (1) | 2024.12.24 |