Java 객체 지향과 클래스

지정욱·2023년 11월 15일
0

객체란 세상 모든 것이 객체라고 생각하면 이해하기 쉽다.
TV, 컴퓨터, 의자, 건물, 사람 등 실세계는 객체들의 집합이다.

객체 지향 언어의 특성

1. 캡슐화 (Encapsulation)

캡슐화는 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것으로 객체의 본질적인 특징이다. 캡슐을 사람으로 생각해보면 장기, 뇌, 등이 노출되지 않게 피부나 근육으로 캡슐화가 되어있다고 생각하면 이해하기 쉬울 것 이다.
자바에서는 클래스(class)라는 캡슐을 사용하면 멤버로 필드(멤버변수)와 메소드(멤버 함수)로 구성되어 있다.

2. 상속 (Inheritance)

실세계에서 상속은 상위개체의 속성이 하위 개체에 물려져서, 하위 개체가 상위 개체의
속성을 모두 가진다고 생각하자.
자바에서의 상속은 자식 클래스가 부모 클래스의 속성을 물려받고, 확장(extends)하는 개념이다. 자바에서 부모 클래스를 super class, 자식 클래스를 sub class라고 부른다.

3. 다형성 (Polymorphism)

다형성은 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현되는 것을 말한다. super class에 구현된 메소드를, sub class에서 동일한 이름으로 자신의 특징에 맞게 다시 구현하는 이른바 메소드 오버라이딩(overriding)으로 불린다.
다형성의 또 다른 사례는 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러 개 만드는 메소드 오버로딩(overloading)이 있다.
-> 오버라이딩과 오버로딩은 따로 정리해서 올리겠습니다.

그렇다면, 왜 객체,캡슐화,상속,다형성등 여러 기법들을 왜 사용하게 되었을까?

-> 바로 소프트웨어의 재사용함으로써 코드를 줄일 수 있기 때문이다.

클래스

객체 지향 언어에서, 클래스는 객체를 만들어 내기 위한 설계도이며, 클레스 모양 그대로 생성된 실체가 바로 객체이다. 객체를 클래스의 인스턴스(instance)라고 부른다. 클래스를 사용함으로써 클래스는 하나이지만 객체들은 수 없이 많이 생성할 수 있다.

profile
T자형 개발자가 되자

0개의 댓글