카테고리 없음

[혼공자] 3주차 (혼공학습단 12기)

chaemin07 2024. 7. 16. 17:13

혼공학습단 12기는 7/01일부터 8/18일까지 진행하는 스터디 활동입니다.

 

★ 이번주 공부할 내용

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

 

🙋‍♂️Q&A: 신용권 저자님의 네이버 카페
💻유튜브 강의: 👉전체 강의 목록

 

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

『혼자 공부하는 자바』가 더욱 풍성한 내용을 담아 돌아왔습니다! 개정판은 기존의 자바 8 & 11 버전은 물론, 최신 버전인 자바 21까지 다룹니다. 자바 21 버전의 강화된 언어 기능을 담은 총 260개

www.youtube.com

이번주 공부할 내용

·  Chaper 06 클래스

파트입니다!!!

■ 기본 숙제 & 추가숙제

 

클래스 파트의 첫 단원은 객체 지향 프로그래밍입니다

객체지향을 논하기 앞서 먼저 객체(object)란 무엇인지부터 정의해야 될 듯합니다

 

객체란 현실에서 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것입니다.

 

현실 세계의 물리적인 것과 추상적인 것을 모두 1대 1로 매핑할 순 없지만 객체에 현실의 것들을 객체로 만듦으로써 현실 세계에서 일어나는 모든 현상들을 객체들 간의 상호작용으로 바라볼 수 있습니다.

객체 지향 프로그래밍(OOP)란 s/w를 개발할 때 부품에 해당하는 객체를 먼저 만들고, 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 의미합니다.

현실의 객체를 만들기 위해서는 설계도가 필요한데 이 설계도를 클래스(class)라고 합니다.

클래스로부터 만들어지는 객체를 해당 클래스의 인스턴스(instance)라고 합니다.

예를 들어 클래스는 붕어빵틀, 인스턴스는 서로 다른 붕어빵(팥, 슈크림 등등)으로 크기도 모양도 맛도 각기 다른 객체입니다.

 

클래스 도식화
클래스의 인스턴스 도식화

 

클래스는 new연산자를 통해 생성할 수 있고, 생성된 객체(인스턴스)를 클래스 변수에 저장하여 접근할 수 있습니다.

클래스의 멤버에는 필드, 생성자, 메소드가 있습니다.

 

필드(Field)는 객체의 고유 데이터, 객체가 가져야 할 부품 객체, 상태 정보를 저장합니다

필드는 원하는 디폴트값으로 정의할 수도 있고, 선언만 한 후 생성자를 통해 사용자가 입력을 통해 초기화할 수도 있습니다. 만약 선언한 필드를 사용자가 초기화하지 않을 시 객체 생성과 동시에 기본 초기값으로 설정됩니다.

 

생성자(Constructor)는 메소드와 비슷하지만 리턴 타입이 없고 클래스의 이름과 동일합니다.

생성자는 객체 생성 시 객체를 초기화하는 역할을 하게 됩니다.

생성자 메소드에서는 일반적으로 필드에 초기값을 저장하거나 메소드를 호출하여 객체를 사용하기 위한 준비를 합니다.

인스턴스마다 초기화하려는 필드들이 다르기 때문에 하나의 생성자만으로는 사용자의 요구사항을 만족할 수 없습니다.

그래서 자바는 다양한 방법으로 인스턴스를 생성할 수 있도록 생성자 오버로딩(Constructor Overloading)을 제공합니다.

생성자도 메서드 오버로딩처럼 매개변수만 다르게 해서 여러 생성자를 만들 수 있습니다.

매개변수가 없는 생성자를 기본 생성자라고 하는데 클래스 내부에 생성자가 하나도 없으면 자바 컴파일러가 기본 생성자를 자동으로 만들어 주지만 생성자가 하나라도 있으면 기본 생성자를 만들지 않습니다.

 

메소드(Method)는 객체의 동작(기능)에 해당합니다.

메소드 선언은 선언부(리턴 타입, 메소드 이름, 매개변수 선언)와 실행 블록으로 구성되어 있습니다.

리턴 타입은 메소드를 실행한 후 결괏값의 데이터 타입입니다.

메소드 이름은 메소드를 호출할 때 사용되고 일반적으로 이름을 통해 해당 메소드가 어떤 기능을 수행하는지 유추할 수 있습니다.

 

메소드는 클래스의 내·외 부의 호출에 의해 실행됩니다.

메소드에 어떤 접근 제한자(Access Modifier)가 붙어있느냐에 따라 메소드 호출 가능 여부가 결정됩니다.

"접근 제한자"를 "접근 제어자"라고도 부릅니다!

필드와 메소드의 접근 제한🖐

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

 

https://hongong.hanbit.co.kr/%EC%9E%90%EB%B0%94-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C%EC%9E%90%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%EC%B0%A8%EC%9D%B4public-protected-private/

 

자바 접근 제한자의 종류와 차이(public, protected, private) : 예제 다운로드

자바 코딩할 때 가장 많이 보았던 public과 private의 차이점이 무엇인지 모르고 넘어갔던 분들을 위해 접근 제한자 또는 접근 제어자에 대해 간단히 표로 정리했습니다. 포스팅 하단에서 예제와 용

hongong.hanbit.co.kr

접근제한자에 관한 정보를 검색하는데 반가운 글이 보여 붙여봤습니다!!

 

클래스와 클래스 내부의 메소드 다른 곳에서 사용하지 못하도록 막을 필요가 있을 때

접근 제한자를 사용하여 객체 생성과 메소드 호출을 사용하지 못하도록 막을 수 있습니다.

※ private ← default ← protected ← public (왼쪽으로 갈수록 접근이 많이 제한됩니다!!)

 

글로 정리하는 과정에서 다시 배우게 되는 것 같습니다!!

이번 주도 공부하시느라 고생 많으셨습니다!! 다들 화이팅입니다!!!!!