Class
Class 란?
클래스는 객체(또는 인스턴스)를 생성하는 하나의 공장(틀, 프레임, 판형)이라고 할 수 있다.
하나의 공장을 class라고 생각한다면 그 공장을 통해 생성하는 것들을 객체(또는 인스턴스)라고 생각할 수 있다.
내가 만들고자 하는 어떠한 것을 클래스로 만들 수 있다.
만들고자하는 객체애 대한 특성과 동작에 대해서 고민하여 클래스를 만들 면 된다.
그래서 우리는 이렇게 정의한다.
객체의 특징 -> 속성(attribute)
객체의 동작 -> 메서드(method)
Class가 나온이유는?
클래스 없이도 객체의 특징(속성)들은 변수로 정의할 수 있을 것이고, 동작은 함수로 정의할 수 있다.
하지만 프로그램의 규모가 커지고 여러 사람이 협업을 하는 과정에서 좀 더 쳬계적이고 분업화된 시스템으로 개발하고 확장 해나갈 필요가 있다.
그런 일련의 과정에서 OOP(객체 지향 프로그래밍)가 만들어지고 발전해왔다.
생성자란(Constructor)?
생성자는 new 키워드로 클래스의 객체(또는 인스턴스)가 생성될 때 제일 먼저 자동적으로 호출되는 특별한 메서드이다.
따라서, 객체의 초깃값을 설정하는 등의 용도로 많이 사용된다.
생성자명은 클래스명과 동일하게 만든다.
생성자는 리턴되는 반환값이 없다. --> 객체가 생성될 때 제일 먼저 호출만 된다.
생성자는 오버로딩이 가능하다. -> (오버로딩이 가능하다는 것은 여러개의 생성자를 만들 수 있다. 인자값에 따라서 다르게 생성자를 호출한다.)
생성자는 default 생성자 라는게 있다. -> 클래스내에 생성자가 없다면 default 생성자가 자동으로 호출된다.
생성자의 위치는?
보통 속성과 메서드 사이에 기술한다.
생성자도 메서드이므로 메서드 그룹에 속하는데 제일 상단에 보통 위치한다.
class Person{
// 속성
int age;
String name;
// 생성자
Person(){}
// 메서드
void move() {}
}
생성자의 특징
생성자는 받는 인자값은 있을 수 있다.
생성자 메소드는 2개 이상을 만들 수 있다.
생성자에서 this는 객체 자신을 의미한다.
상속(Inheritance)란?
말 그대로 부모 클래스가 가지고 있는 속성들과 동작들을 그대로 물려받아 새로운 클래스를 만드는 것.
상속을 활용하면 물려받은 것들은 그대로 쓰면 되고, 거기에 덧붙여 새로운 것만 만들면 되므로 그만큼 노력과 시간이 세이브된다.
이때, 물려받게 되는 원본 클래스를 부모 클래스 또는 슈퍼 클래스라고 부른다.
상속받아 새롭게 만들어진 클래스는 말 그대로 자식 클래스 또는 서브/하위 클래스라고 부른다.
재활용성이 상속의 가장 큰 장점이라고 볼 수 있다.
완전히 새로운 것을 만드는 것이 아니라 기존 부모로 부터 상속을 받아 필요한 것만 추가로 더해서 만드는 것이다.
상속의 사용
기존 부모 클래스를 확장한다는 개념 -> extends 키워드를 사용한다.
부모 클래스의 멤버 필드, 메서드는 상속이 가능하나 생성자는 상속이 안된다.
부모 클래스의 접근 제한자 private인 경우에는 아무리 자식 클래스가 상속을 받았다고 하더라도 접근이 불가능하다.
이 글은 인프런 예제로 공부하는 Java 100 문제풀이를 정리한 글입니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java 자바의 Static (0) | 2022.08.30 |
---|---|
Java 자바의 배열 정렬(Sorting) (0) | 2022.08.07 |
Java 자바의 추상 클래스와 추상 메소드 (0) | 2022.08.06 |
Java 자바의 getter, setter (0) | 2022.08.06 |
Java 자바의 String, StringBuffer, StringBuilder (0) | 2022.08.04 |