📝 오늘의 강의 요약
핵심 키워드: 오버라이딩/오버로딩, 생성자(this), static, Getter/Setter, 시멘틱 구조, float 정렬
- Java: 객체지향의 다형성을 지원하는 메서드 재정의 및 중복 정의 학습
- Java: 생성자를 통한 인스턴스 초기화와 this 키워드의 두 가지 활용법 파악
- HTML/CSS: 의미 있는 구조 설계(Semantic) 및 float과 margin을 이용한 레이아웃 배치 원리 이해
☕ Java 핵심 개념 정리
1. 오버로딩(Overloading) vs 오버라이딩(Overriding)
| 구분 |
오버로딩 (Overloading) |
오버라이딩 (Overriding) |
| 개념 |
한 클래스 내 동일 이름 메서드 다수 정의 |
상속받은 부모 메서드를 자식에서 재정의 |
| 조건 |
매개변수의 개수 또는 타입이 달라야 함 |
메서드 시그니처(이름, 매개변수, 리턴타입) 일치 |
| 성격 |
다형성 지원 (동일 기능, 다른 입력) |
다형성 실현 (상속 관계에서의 기능 변경) |
2. 생성자(Constructor)와 this
- 생성자 정의: 객체 생성 시 필드 초기화를 담당하는 특수 메서드 (리턴 타입 없음)
- this 키워드 활용:
- this.필드: 매개변수와 필드 이름이 같을 때 인스턴스 멤버를 명확히 지칭
- this(): 생성자 내부에서 다른 생성자를 호출 (반드시 첫 줄에 위치)
3. 멤버 분류 및 접근 제어
- static (정적 멤버): 객체 생성 없이 클래스명으로 접근 가능하며 모든 객체가 공유
- private & Getter/Setter: 외부의 직접 접근을 차단(캡슐화)하고 메서드를 통해 안전하게 데이터 처리
- 인스턴스 변수 초기화: 생성자를 통한 초기 설정 또는 Setter를 통한 사후 수정 방식 활용
🌐 HTML & CSS 레이아웃 설계
1. HTML5 시멘틱 구조 (Semantic Structure)
- 목적: 검색 엔진 최적화(SEO) 및 코드 가독성 향상
- 주요 태그:
- <header>: 머리말 / <nav>: 메뉴
- <main>: 주요 본문 / <section>: 주제별 그룹
- <article>: 독립적 콘텐츠 / <footer>: 하단 정보
2. CSS 정렬의 원리와 충돌 해결
- float: left/right: 요소를 좌우로 띄워 배치 (문서의 일반 흐름에서 분리)
- margin: 0 auto: 블록 요소를 부모의 가로 중앙에 정렬 (폭 지정 필수)
- ⚠️ 충돌 주의: float 적용 시 요소가 흐름에서 벗어나므로 margin: 0 auto를 통한 중앙 정렬 불가
💡 유용한 문법 및 팁
1. printf 서식 지정자
- %d: 정수 출력
- %f: 실수 출력 (기본 소수점 6자리)
- %.2f: 소수점 둘째 자리까지 출력 (셋째 자리에서 반올림)
- %n: 플랫폼 독립적인 줄바꿈 수행
2. 향상된 for문 (Enhanced for Loop)
- 문법: for (타입 변수 : 배열/컬렉션) { ... }
- 장점: 인덱스 제어 및 증감 연산(i++) 없이 모든 요소를 간결하게 순회
- 주의: 요소의 단순 읽기 전용으로 적합하며, 순회 중 원본 배열 값 수정은 불가
3. 재귀 호출 (Recursion)
- 개념: 메서드 내부에서 자기 자신을 다시 호출하는 방식
- 필수 조건: 무한 루프 방지를 위한 명확한 종료 조건(Base Case) 설정 필요