09. [Java] 객체지향프로그래밍의 이해 /20230424
🧑🏻💻 TIL(Today I Learned)
1. 생성자(Constructor)
➡️ 객체를 생성하는 역할을 하는 클래스의 구성 요소
➡️ new 키워드 사용하여 객체를 생성하고, 생성자는 인스턴스 변수를 초기화하는 메서드라고 할 수 있음
➡️ 메서드 오버로딩과 마찬가지로 오버로딩이 가능하므로 한 클래스 내에 여러 개의 생성자 존재할 수 있음
클래스명(매개변수) { // 생성자 기본 구조
...생략...
}
// 매개변수는 있을 수도 있고 없을 수도 있음
🔎 this vs this()
➡️ 메서드의 호출 내용에서 같은 클래스 안에 메서드들끼리 서로 호출할 수 있었던 것처럼 생성자로 상호 호출 가능
- this() 메서드 : 자신이 속한 클래스에서 다른 생성자를 호출하는 경우에 사용
- 반드시 생성자의 내부에서만 사용 가능
- 반드시 생성자의 첫 줄에 위치해야 함!
- this 키워드 : 인스턴스 자신을 가리키며, 참조 변수를 통해 인스턴스 멤버에 접근할 수 있는 것처럼 this 통해 인스턴스 자신의 변수에 접근 가능
2. 내부 클래스(Inner Class)
➡️ 잘 사용은 하지 않지만 후에 스프링의 이해에 있어서는 중요함
➡️ 클래스 내에 선언된 클래스로 외부클래스와 내부 클래스가 서로 연관되어 있을 때 사용
➡️ 내부 클래스를 사용하면 외부 클래스의 멤버들에 쉽게 접근 가능
➡️ 외부적으로 불필요한 데이터를 감출 수 있어 객체지향의 중요한 핵심 원칙인 캡슐화를 달성하는 데 유용함
- 인스턴스 내부 클래스
- 정적 내부 클래스
- 지역 내부 클래스
위 세 가지 내부 클래스는 변수가 선언 위치에 따라 구분되는 것처럼 유사하게 그 위치를 중심으로 구분될 수 있고, 유효범위와 특성이 변수와 매우 유사함
오늘 아침 세션에서 블로깅에 대한 유용한 말씀을 많이 해주셔서 오늘부터 쓰는 방식을 바꿔보기로 했다. 사실 처음에는 그냥 무작정 하루에 배운 것들을 써내려갔었는데 배운 내용이 점점 방대해지니 점점 기록이 힘들어지기도 했고 마음대로 요약해 버리기도 했다. 꾸준히 블로깅을 이어가기 위해서 좀 더 어떻게 쓸 것인지에 대한 세분화가 필요하다는 생각이 들었다. 단순히 오늘은 어떤 것을 배웠는지 부족한 점은 무엇이었는지에 대한 간단한 회고는 일기처럼 이 카테고리에 쓰고 배웠던 것에 대한 자세한 개념 정리는 다른 카테고리에 따로 해 봐야겠다. 코플릿이나 다른 코딩 테스트 그리고 코드를 구현해 보다가 에러났던 것들은 또 따로 모아서 정리할 생각이다.
* 생성자의 핵심 개념과 기본 문법
* 생성자가 메서드와 구분되는 두 가지 차이
* 메서드 오버로딩이 생성자에서 어떻게 구현될 수 있는지
* 기본 생성자와 매개변수가 있는 생성자의 차이를 설명할 수 있는지
* this 와 this()의 차이에 대해 설명할 수 있는지
오늘의 학습 목표를 기준 삼아 복습을 강의가 끝난 뒤 복습을 하고 체크 할 것!
'SEB_BE_45 > 공부 정리' 카테고리의 다른 글
11. 객체지향프로그래밍의 이해 / 20230426 (0) | 2023.04.27 |
---|---|
10. [Java] 객체지향프로그래밍의 이해 /20230425 (0) | 2023.04.25 |
08. [Java] 객체지향프로그래밍의 이해 / 20230421 (0) | 2023.04.21 |
07. Java 기초 4 / 20230420 (0) | 2023.04.20 |
06. Java 기초 3 / 20230419 (0) | 2023.04.20 |