⏳ Time Log/1. One Day (Daily · TIL)

Day 9 (10/30) - Java 상속 및 오버라이딩

this.Serena 2026. 2. 18. 23:40

📝 오늘의 강의 요약

핵심 키워드: 오버라이딩/오버로딩, 생성자(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) 설정 필요