일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 생성형AI
- 애프터이펙트
- 제이펍
- 혼공C
- 혼공학습단
- 3주차후기
- 6주차후기
- 혼공분석
- 챌린지
- 맛있는디자인스터디11기
- 전면개정2판
- CC2023
- 혼공머신
- 혼공
- 스터디완료
- 맛있는디자인스터디13기
- 진짜쓰는일러스트레이터
- Doit파이썬스터디
- 맛있는디자인
- 프리미어프로
- 혼공단
- 혼공자
- 후기
- 회고
- 스터디
- Doit점프투파이썬
- 맛있는디자인스터디12기
- 혼공JS
- 혼공파
- CS2023
- Today
- Total
애독자's 공부방
[혼공자] 3주차 _ 혼자 공부하는 자바(개정판) 본문
혼공단 - 혼공자, 혼자 공부하는 자바(개정판)
■ 공부한 내용
# | 진도 | 기본 숙제(필수) | 추가 숙제(선택) |
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: 외부에서 값을 받아 필드를 변경하는 메소드
■ 기본 숙제
- 어렵거나 중요하다고 생각하는 용어를 혼공 용어 노트에 정리하고 공유하기
. 중요한 용어를 자동차를 예로 들어 정리해봤습니다.
■ 추가 숙제(선택)
- 객체 지향 프로그래밍의 개념 정리하기
. 객체 지향 프로그래밍의 핵심 개념
1) 객체: 현실 세계의 사물이나 개념을 모델링한 기본 단위
2) 속성: 객체의 특징이나 정보를 나타내는 값 (색깔, 크기, 이름 등)
3) 기능: 객체가 수행할 수 있는 행동이나 작업 (움직이기, 작동하기, 계산하기 등)
4) 클래스: 객체를 만들기 위한 설계도, 객체의 속성과 기능을 정의
5) 상속: 부모 클래스의 속성과 기능을 자식 클래스가 물려받는 개념
6) 다형성: 동일한 메서드를 각 객체마다 다르게 구현하는 개념
7) 캡슐화: 객체의 속성을 외부로부터 보호하고, 메서드를 통해서만 접근 가능하게 하는 개념
8) 추상화: 객체의 본질적인 특징과 기능에만 초점을 맞추고, 구현 세부 사항은 숨기는 개념
. 객체 지향 프로그래밍의 장점
1) 코드 재사용성 향상: 상속과 다형성을 통해 기존 코드를 재사용하여 새로운 코드를 작성할 수 있음
2) 코드 유지보수 용이: 객체별로 코드를 관리하기 때문에 코드를 수정하거나 추가할 때 변경 영향 범위가 작음
3) 프로그램 이해도 향상: 추상화를 통해 코드의 복잡성을 줄이고, 객체와 클래스를 통해 프로그램 구조를 명확하게 이해할 수 있음
4) 변경에 대한 적응력 강화: 새로운 기능 추가나 요구사항 변경에 유연하게 대처할 수 있음
'Java > 혼공학습단 12기' 카테고리의 다른 글
[혼공자] 6주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.08.11 |
---|---|
[혼공자] 5주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.08.04 |
[혼공자] 4주차 _ 혼자 공부하는 자바(개정판) (1) | 2024.07.22 |
[혼공자] 2주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.07.08 |
[혼공자] 1주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.07.02 |