📘 0626 자바 학습 정리
1. 클래스와 객체
Vehicle 클래스 예시
Vehicle 클래스는 자동차를 모델링한 설계도.
- 필드: 회사명, 모델명, 속도, 연료량, 시동상태, 소유자(Owner 객체).
- 생성자: 회사명과 모델명을 초기화.
- 메서드:
powerOn(), powerOff(): 시동 켜기/끄기
accelerate(): 속도 증가
info(): 차량 정보 출력
Owner 클래스
- 자동차 주인의 이름과 등록일을 관리하는 객체.
LocalDate 타입을 사용.
VehicleMain 클래스
Vehicle 객체 생성 및 메서드 호출 테스트.
- 객체 주소 출력으로 참조 확인 가능.
2. 문자열 비교
StringCompare 클래스
- 문자열 리터럴과
new 키워드로 생성한 문자열 비교.
==는 주소값 비교, .equals()는 값 비교.
- 사용자 입력을 받아 문자열 비교 예제 포함.
3. 배열과 유사 구조: 커스텀 StringList
StringList 클래스
- 문자열 배열을 다루기 위한 커스텀 클래스.
- 주요 메서드:
push(): 요소 추가
pop(): 마지막 요소 제거
insert(), modify(), remove() 등 다양한 배열 조작 기능
include(), indexOf() 등 검색 기능 포함
- 내부적으로
copy() 메서드를 통해 배열 크기 조절
ListMain 클래스
StringList 객체 테스트
- 음식 리스트와 유저 이름 리스트 조작
4. 패키지와 클래스 이름 충돌 해결
Main 클래스
- 동일 클래스명이 다른 패키지(
cake, juice)에 존재하는 상황 처리
import를 활용하여 클래스 구분 사용
패키지 클래스
chap1_4.cake.Apple, chap1_4.juice.Apple: 다른 의미의 Apple 객체
5. Player 클래스와 메서드
Player 클래스
- 게임 캐릭터를 모델링한 클래스
- 필드: 닉네임, 레벨, 체력
- 메서드: 다른 Player를 공격 (
attack())
- 공격자 체력 -5, 대상 체력 -10
- 자기 자신 공격 불가 조건 포함
Main 클래스
- 두 Player 객체 생성 후 공격 예제 실행
6. 생성자 오버로딩: Book 클래스
Book 클래스
- 생성자 오버로딩을 통해 다양한 방식으로 Book 객체 생성 가능
- (제목, 저자, 연도)
- (제목만) → 기본값 설정
- (저자, 제목) → 연도 기본값 설정
toString() 오버라이딩으로 정보 출력 형식 지정
Main 클래스
- Book 객체 생성 테스트
- 각 생성자가 호출될 때 로그 출력
✅ 요약
- 객체 지향의 기본 구조 (클래스, 필드, 생성자, 메서드)
- 참조형 타입의 비교법 (==, equals)
- 배열 유사 구조 만들기 (StringList)
- 패키지를 통한 클래스 이름 구분
- 생성자 오버로딩으로 다양한 객체 초기화 방식 학습