관리 메뉴

애독자's 공부방

[혼공자] 3주차 _ 혼자 공부하는 자바(개정판) 본문

Java/혼공학습단 12기

[혼공자] 3주차 _ 혼자 공부하는 자바(개정판)

애독자 2024. 7. 15. 06:23
728x90

혼공단 - 혼공자, 혼자 공부하는 자바(개정판)

 

 

■ 공부한 내용

# 진도 기본 숙제(필수) 추가 숙제(선택)
3주차
(7/15 ~ 7/21)
Chapter 06 어렵거나 중요하다고 생각하는 용어를 혼공 용어 노트에 정리하고 공유하기 객체 지향 프로그래밍의 개념 정리하기

 

 

 

□ Chapter 06

 ▷ 06-1

 - 객체: 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것
 - 클래스: 객체를 만들기 위한 설계도
 - 인스턴스: 클래스로부터 만들어진 객체 (객체는 클래스의 인스턴스)
 - new 연산자: 객체 생성 연산자이며, 생성자를 호출하고 객체 생성 번지를 리턴
    . 객체는 클래스로부터 생성되며 new 클래스()로 생성
 - 클래스 변수: 클래스로 선언한 변수를 말하며 해당 클래스의 객체 번지가 저장 
 - 클래스 멤버: 클래스에 선언되는 멤버는 필드, 생성자, 메소드
 
▷ 06-2
 - 필드: 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳
 - 필드 선언: 클래스 중괄호 {} 블록 어디서든 선언하나, 생성자와 메소드 내부에서는 선언 불가
 - 필드 사용: 클래스 내부의 생성자와 메소드에서 바로 사용이 가능하나, 클래스 외부에서 사용할 경우에는 반드시 객체를 생성하고 참조 변수를 통해 사용

▷ 06-3
 - 생성자: new 연산자로 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당
 - 객체 초기화: 객체를 사용하기 전에 준비하는 과정으로 필드를 선언할 때 초기화하거나 생성자 내부에서 필드값을 초기화할 수 있으며, 메소드를 호출하는 내용으로 구성
 - 기본 생성자: 클래스 선언 시 컴파일러에 의해 자동으로 추가되는 생성자
 - 매개 변수: 생성자 호출 시 값을 전달받기 위해 선언되는 변수
 - 생성자 오버로딩: 매개 변수를 달리하는 생성자를 여러 개 선언하는 것
 - 다른 생성자 호출 this(): 객체 자신의 또 다른 생성자를 호출할 때 사용 

▷ 06-4
 - 선언부: 매소드 선언부는 메소드 시그니처라고도 하며, 리턴 타입, 메소드 이름, 매개 변수 선언 부분 요소를 포함
 - void: 리턴값이 없는 메소드
 - 매개 변수: 메소드 호출 시 제공되는 매개값은 메소드 선언부의 매개 변수에 차례대로 대입되어, 메소드 블록 실행 시 이용
 - return문: 메소드 선언부에 리턴 타입이 있다면 리턴값을 지정하기 위해 return문을 반드시 사용
   . 리턴 타입이 void라면 return문은 필요없지만, 메소드 실행 종료를 위해 사용할 수도 있음
 - 메소드 호출: 메소드를 실행하려면 메소드 이름(매개값, ...) 형태로 호출
 - 메소드 오버로딩: 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것
   . 조건: 매개 변수의 타입, 개수, 순서 중 하나가 달라야 함

▷ 06-5
 - 인스턴스 멤버: 객체마다 가지고 있는 멤버로, 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드 (인스턴스 필드, 인스턴스 메소드)
   . this: 객체 내부에서도 인스턴스 멤버에 접근하기 위해 사용 (this.model: 자신이 가지고 있는 model 필드)
     → 주로 생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할 때 사용
 - 정적 멤버: 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드 (정적 필드, 정적 메소드)
   . static: 정적 멤버를 선언할 때 사용하는 키워드
 - 싱글톤: 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우, 이 객체를 싱글톤이라 함
 - final 필드: 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없는 필드 (final 키워드로 선언)
   . 상수: 수학에서 사용되는 원주율인 파이나 지구의 무게 및 둘레 같은 불변의 값을 저장하는 필드 (final static 키워드로 선언)

▷ 06-6
 - 패키지 선언: 해당 클래스 또는 인터페이스가 어떤 패키지에 속할 것인지를 선언하는 것 (소스 파일의 최상단에 위치)
   . package 상위패키지.하위패키지;
 - import문: 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있다면, 해당 패키지의 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 알리기 위해 사용
   . import 상위패키지.하위패키지.클래스이름;  또는  import 상위패키지.하위패키지.*;
 - 접근 제한자: 클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 막을 필요가 있을 때나, 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 필드나 메소드를 사용하지 못하도록 막아야 할 때 사용

   . 접근 제한의 종류와 적용 대상

접근 제한 적용 대상 접근할 수 없는 클래스
public 클래스, 필드, 생성자, 메소드 없음
protected 필드, 생성자, 메소드 자식 클래스가 아닌 다른 패키지에 소속된 클래스
default 클래스, 필드, 생성자, 메소드 다른 패키지에 소속된 클래스
private 필드, 생성자, 메소드 모든 외부 클래스

 

 - Getter/Setter 메소드: 필드는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 필드에 접근하도록 유도
   . Getter: 필드의 값을 외부로 리턴해주는 메소드
   . Setter: 외부에서 값을 받아 필드를 변경하는 메소드

 

01
행복한 선물 잘 마셨습니다. 감사합니다!

 

 

■ 기본 숙제

  - 어렵거나 중요하다고 생각하는 용어를 혼공 용어 노트에 정리하고 공유하기

    . 중요한 용어를 자동차를 예로 들어 정리해봤습니다.

 

 

■ 추가 숙제(선택)

  - 객체 지향 프로그래밍의 개념 정리하기

    . 객체 지향 프로그래밍의 핵심 개념

      1) 객체: 현실 세계의 사물이나 개념을 모델링한 기본 단위

      2) 속성: 객체의 특징이나 정보를 나타내는 값 (색깔, 크기, 이름 등)

      3) 기능: 객체가 수행할 수 있는 행동이나 작업 (움직이기, 작동하기, 계산하기 등)

      4) 클래스: 객체를 만들기 위한 설계도, 객체의 속성과 기능을 정의

      5) 상속: 부모 클래스의 속성과 기능을 자식 클래스가 물려받는 개념

      6) 다형성: 동일한 메서드를 각 객체마다 다르게 구현하는 개념

      7) 캡슐화: 객체의 속성을 외부로부터 보호하고, 메서드를 통해서만 접근 가능하게 하는 개념

      8) 추상화: 객체의 본질적인 특징과 기능에만 초점을 맞추고, 구현 세부 사항은 숨기는 개념

    . 객체 지향 프로그래밍의 장점

      1) 코드 재사용성 향상: 상속과 다형성을 통해 기존 코드를 재사용하여 새로운 코드를 작성할 수 있음

      2) 코드 유지보수 용이: 객체별로 코드를 관리하기 때문에 코드를 수정하거나 추가할 때 변경 영향 범위가 작음

      3) 프로그램 이해도 향상: 추상화를 통해 코드의 복잡성을 줄이고, 객체와 클래스를 통해 프로그램 구조를 명확하게 이해할 수 있음

      4) 변경에 대한 적응력 강화: 새로운 기능 추가나 요구사항 변경에 유연하게 대처할 수 있음

728x90