💡 OOP → Object Oriented Programming
JAVA는 객체지향 언어라고 하는데, 이 객체지향 언어에서 객체가 무엇인지 개념부터 알아보자.
객체 지향 프로그래밍의 특징
추상화
- 하위 클래스에 존재하는 공통적인 메소드를 인터페이스로 정의하는것
- 즉, 공통된 속성/기능을 묶어 이름을 붙히는 것
캡슐화
- 비슷한 역할을 하는 속성과 메소드들을 하나의 클래스로 모은것
- 관련있는 함수와 변수를 하나의 클래스 안에 묶은것.
- 정보 은닉이 된다.
- 객채 내의 멤버변수에 직접적인 접근을 제한할 수 있다.
- 메소드만을 이용해 외부와 상호작용을 한다.
상속성
- 클래스를 재활용(재사용) 목적으로 만들어진 문법적 요소
- 이미 작성된 클래스 이어받아 새로운 클래스를 만드는 기법.
- 상위 클래스를 하위 클래스에서 상속받게 되면 상위 클래스의 멤버변수나 메소드를 그대로 물려받을 수 있다.
다형성
- 같은 모양의 함수가 상황에 따라 다르게 동작하는것을 의미
- 오버로딩(Overloading) , 오버라이딩(Overriding) 가능
- 오버로딩(Overloading)
- 함수의 이름은 같지만 매개변수의 개수, 타입등을 다르게 하여 다르게 사용하는것
- 오버라이딩(Overriding)
- 상위 클래스의 메소드를 하위 클래스에서 똑같은 이름으로 재정의 하는것
- 즉, 메소드의 이름은 같지만, 상황에 따라 호출되는 메소드가 다르다