📘 1. 객체 지향 프로그래밍
📌 객체
- 물리적으로 존재하거나 추상적으로 생각할 수 잇는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것을 말한다.
- 객체는 속성(필드, 변수)과 동작(메서드)으로 구성됨
객체 모델링
- 현실 세계의 객체를 소프트 웨어 객체로 설계하는 것
메소드 호출 방법
리턴값 = 객체.메소드(매개값1, 매개값2 ...);
객체 간의 관계
1. 집합 관계 : 집합 관계에 있는 객체는 하나는 부품이고 하나는 완성품에 해당된다.
2. 사용 관계 : 객체 간의 상호작용을 말한다.
3. 상속 관계 : 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계를 말한다.
📌 객체 지향 프로그래밍
- 만들고자 하는 완성품인 객체를 모델링하고, 집합 관계에 있는 부품 객체와 사용 관계에 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법
객체와 클래스
- 자바에서는 설계도가 바로 클래스다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어있고 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 합니다.
클래스 선언
- 식별자 작성 규칙
- 하나 이상의 문자로 이루어져야 한다.
- 첫 글자에는 숫자가 올 수 없다.
- '$', '_' 외의 특수 문자는 사용할 수 없다.
- 자바 키워드는 사용할 수 없다.
📌 public 접근 제한자
- public 접근 제한자는 파일 이름과 동일한 이름의 클래스 선언에만 붙일 수 있다.
new
- new는 클래스로부터 객체를 생성시키는 연산자이다. new연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있다. new 연산자로 생성된 객체는 메모리 힙(heap) 영역에 생성됨.
📘 2. 필드
📌 필드
- 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳
- 클래스에 포함된 변수
- 필드와 변수 차이 관련 블로그
필드 사용
- 필드를 사용한다는 것은 필드값을 읽고 변경하는 작업을 말한다. 클래스 내부의 생성자나 메소드에서 사용할 경우 단순히 필드 이름으로 읽고 변경하면 되지만, 클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야한다.
도트(.)연산자
- 도트 연산자는 객체 접근 연산자로 객체가 가지고 있는 필드나 메소드를 사용하고자 할 때 사용된다.
📘 3. 생성자
📌 생성자
- 생성자(Constructor)는 new연산자로 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당합니다.
객체 초기화
- 필드를 촉화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것을 말한다.
📌 this
- this는 객체 자신의 참조
- this.필드 는 this라는 참조 변수로 필드를 사용하는 것과 동일
📌 생성자 오버로딩(overloading)
- 매개 변수를 달리하는 생성자를 여러 개 선언하는 것을 말한다.
다른 생성자 호출 : this()
- this()는 자신의 다른 생성자를 호출하는 코드로 반드시 생성자의 첫 줄에서만 허용된다.
📘 4. 메소드
메소드 시그니처