객체(object) : 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것
인스턴스(instance) : 클래스로 부터 만들어진 객체부터 만들어진 객체
인스턴스 멤버 : 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메서드
정적 멤버 : 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할수 있는 필드와 메서드
생성자(constructor) : new 연산자로 호출되는 특별한 중괄호 블록 클래스 이름으로 되어 있고 반환형이 없다.
싱글톤(singleton) : 전체 프로그램에서 하나의 클래스에 단 하나의 객체만 만들도록 보장,
생성자 앞에 private 접근 제어자를 붙이고, 필드에 자기 자신의 객체를 static으로 선언
식별지 : 프로그래밍 언어에서 프로그래머가 변수, 메서드, 클래스 등에 부여하는 이름
리턴 타입(return type) : 메서드가 실행 후 리턴하는 값의 타입(= 반환형),
void로 선언된 리턴값이 없는 메서드에서도 return 사용 가능하나 리턴값없이 사용(= 메서드 실행 강제 종료)
리턴(return) : 함수를 실행했던 위치로 돌아가게 하는 것, 리턴값을 가지는 함수는 반드시 반황값이 있어야 한다.
매개 변수(parameter) : 메소드 실행 시 데이터를 외부로부터 받기 위해 사용
- 클래스의 구성 멤버
- 필드(field) : 객체의 데이터가 저장되는 곳
- 생성자(constructor) : 객체 생성 시 초기화 역할 담당
- 메서드(method) : 객체의 동작에 해당하는 실행 블록
- 접근 제한자(access modifier) : 클래스 및 인터페이스들이 가지고 있는 멤버의 접근을 제한하기 위해 사용
- public 접근 제한자 : 외부 클래스가 자유롭게 사용 가능
- protected 접근 제한자 : 같은 패키지 또는 자식 클래스에서 사용 가능
- private 접근 제한자 : 같은 클래스 내에서만 가능 외부에서 사용 불가
- default 접근 제한 : 같은 패키지에 소속된 클래스에서만 사용 가능
- 오버 로딩(overloading) : 하나의 메서드 이름으로 여러 기능을 담는 것
- 메서드 오버로딩 : 클래스 내에 같은 이름의 메서드를 여러 개 선언 하는 것,
매개 변수의 타입, 개수, 순서 중 하나가 달라야 함- 생성자 오버로딩 : 매개 변수를 달리하는 생성자를 여러 개 선언 하는 것
객체 지향 프로그래밍(OOP, Object-Oriented Programming)
- 프로그램을 객체라는 단위로 하나씩 조립해서 완성된 프로그램을 만드는 기법
- 객체는 속성(field)과 동작(method)으로 구성
객체 지향 프로그래밍 특징
1. 캡슐화 (Encapsulation)
- field와 method를 하나의 단위로 묶어 field는 외부에서 직접 접근하지 못하게 숨기고, 객체가 제공하는 method를 통해 접근하도록 한다.
=> 데이터 보호와 유지보수에 용이
2. 상속 (Inheritance)- 자식 클래스가 부모 클래스의 field와 method을 상속 받을 수 있다
=> 코드 재사용, 클래스 간의 관계 설정
3. 다형성 (Polymorphism)- 하나의 객체가 여러 형태를 가질 수 있다.
=> 메서드 오버로딩(같은 이름의 메서드를 다르게 정의), 메서드 오버라이딩(상속받은 메서드를 재정의)
4. 추상화 (Abstraction)- 불필요한 세부사항을 숨기고 중요한 부분만 강조한다.
=> 추상클래스나 인터페이스를 통해 구현