💡클래스 (Class)
클래스는 멤버 변수 및 메서드를 포함하는 객체를 만들기 위한 코드 양식으로서, 인스턴스(메모리에 할당된 객체)를 생성하는 설계도(틀)라고 할 수 있다.
속성을 표현하는 변수인 필드(Field)와 기능을 표현하는 메서드(Method)로 구성된다.
⚬ 내부 클래스 (Inner Class / Non-Static Nested Class)
내부 클래스는 일반 클래스의 내부에 생성된다.
외부의 클래스는 new 인스턴스를 만들어 내부 클래스를 멤버 변수처럼 사용이 가능하다. 또한 내부 클래스는 외부에 있는 클래스의 자원을 직접 사용할 수 있다.
⚬ 중첩 클래스 (Nested Class)
중첩 클래스는 다른 클래스 내에 정의되어있는 클래스로, 클래스를 보조하는 용도로만 사용한다.
클래스를 묶어서 표현하므로 캡슐화를 향상시키고 가독성이 좋으며, 유지보수에 도움을 준다.
1. 정적 멤버 클래스 (Static Member Class)
2. 비정적 멤버 클래스 (Non-static Member Class)
3. 익명 클래스 (Anonymous Class)
4. 지역 클래스 (Local Class)
* Helper Class : 특정 클래스의 작업에 도움을 주는 보조적인 역할의 클래스
⚬ 정적 중첩 클래스 (Static Nested Class)
내부 클래스와는 달리 static으로 선언되지 않았다면 클래스의 자원을 사용할 수 없다.
⚬ 지역 클래스 (Method Local Inner Class)
메소드 내부에 클래스를 정의하며, 메소드 내의 지역 변수처럼 사용된다.
new로 메소드 내부에서 만들어 사용하며, 지역 변수와 같이 메소드 밖에서는 사용될 수 없다.
⚬ 추상 클래스 (Abstract Class)
추상화는 공통되는 필드를 묶어서 하나의 클래스를 만드는 것으로, 추상 클래스는 하나 이상의 추상 메서드를 포함한 클래스이다.
함수 선언만 되어있고 구현부가 없는 메서드를 의미한다.
상속을 위한 클래스이므로 인스턴스를 생성할 수 없지만, static이나 final이 아닌 필드를 가질 수 있다.
미완성 클래스라고 하며, 상속받는 자식 클래스가 부모의 추상 메서드를 적절히 재정의해 구현해야 사용할 수 있다.
💡객체 (Object)
객체는 클래스로부터 만들어진 객체는 클래스의 인스턴스이며, 객체지향 프로그래밍에서는 객체를 클래스를 기반으로 한 변수를 의미한다.
클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다.
⚬ 객체 생성
클래스로부터 객체를 생성하려면 new 연산자를 사용한다.