오늘 공부내용
[Section1 - Java 객체지향 프로그래밍 기초]
- 자바의 꽃 "객체"
- OOP (Object Oriented Programming System) 객체지향 프로그래밍
"프로그래밍에서 필요한 데이터를 한 데 모아 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 협력과 유기적인 상호작용을 통해 특정 기능을 구성"하는 프로그래밍 방법론을 지칭
손쉽게 재활용이 가능하며, 코드 간의 관계 설정을 통해 적은 노력으로도 쉽게 코드를 변경할 수 있다.
- 객체를 바라보는 방법 "추상화 한다" : 객체의 특징들을 객관적인 텍스트로 나열하는 것.
- 클래스(틀, 설계도) & 인스턴스(설계도를 바탕으로 생성된 객체)
- 필드 & 메서드
처음 알게 된 부분
- 클래스명은 주로 대문자로 시작하는 것이 관례
- 클래스의 4가지 구성요소 :
- 필드(field)- 클래스의 속성(state)
- 메서드(method)- 클래스의 기능(behavior)
- 생성자(constructor)
- 이너 클래스(inner class)
생성자를 제외한 나머지 3개의 구성요소를 클래스의 멤버(member)라고 한다.
- 자바의 변수
클래스 변수(cv, class variable)
인스턴스 변수(iv, instance variable)
지역 변수(lv, local variable)
이중 필드에 포함되는 건 클래스변수와 인스턴스 변수이다. 또, 클래스 변수와 인스턴스 변수는 static 키워드의 유무로 구분이 가능하다.
ㄴstatic 키워드가 함께 선언된 건 클래스 변수, 아닌 건 인스턴스 변수이다. 이 외에 메스드 내에 포함된 모든 변수를 지역변수라 한다.
class Example { // => 클래스 영역
int instanceVariable; // 인스턴스 변수
static int classVariable; // 클래스 변수(static 변수, 공유변수)
void method() { // => 메서드 영역
int localVariable = 0; // 지역 변수. {}블록 안에서만 유효
}
}
- 메서드 오버로딩
- 메서드 오버라이딩
잘 이해가 안간 부분
- static 키워드
static 키워드로 선언된 정적 멤버는 클래스 내부에 저장 공간을 가지고 있기 때문에 객체 생성 없이 곧바로 사용할 수 있다.
- 메서드의 반환타입이 void가 아닌 경우에는 메서드 바디({}) 안에 반드시 return 문이 존재해야 한다.
main() 메서드가 실행되었을때부터 Runtime Data Area
참조변수에는 주솟값이 담겨있으며, 스택 에리어에 저장됨.
느낀점
오늘의 후기...개념이 죄다 꼬인느낌이다. 큰일났다...
처음부터 정리를 다시해야 할것같다.
객체는 자바의 가장 중요하고 근본이 되는 내용이다. 변화가 빠른 기술들 안에서도 변함없이 오래 유지되는 개념들 중 하나일 것이다.
그만큼 어렵고 복잡하며, 다시 기억해내려고 해도 쉽지않다.
노트에 적어가며 내 나름대로의 방식으로 정리하고 이해하자.
코드는 쓰는 사람보다 보는 사람이 더 많다.
코드를 맥락있게, 남들도 고치기 쉽게, 즉 클린코드를 염두하며 지금부터 시작해보자.
내일 할 일
- 개념정리 다시하며 복습하기
- 코플릿 문제풀이
- 가능하다면 실습 및 심화 내용도 마무리
'🖤 BE 45기 > TIL' 카테고리의 다른 글
[TIL 20230425] (1) | 2023.04.25 |
---|---|
[TIL 20230424] (1) | 2023.04.24 |
[TIL 20230420] (1) | 2023.04.20 |
[TIL 20230419] (2) | 2023.04.19 |