Java

[Java][Tutorial] 1-1. Learning the Java Language: Object-Oriented Programming Concepts

noahkim_ 2023. 10. 15. 01:31

The Java Tutorials have been written for JDK 8

 

1. Object-Oriented Programming Concepts

What Is an Object?

  • 모델이 가진 상태와 행동의 번들입니다.
    • 현실세계의 물체를 소프트웨어 세계의 물체로 모델링해서 사용합니다.
    • 현실세계의 물체도 상태와 행동을 가집니다.

 

state
  • 객체가 가지고 있는 내부 상태값을 의미합니다.

 

method
  • 객체의 행동을 메서드라 부릅니다.
    • 내부 상태의 조작을 기반으로 동작합니다.
  • 오브젝트 간 커뮤니케이션 매커니즘
    • 다른 오브젝트로부터 노출시키므로써 인터렉션이 가능합니다.
  • 캡슐화
    • 바깥에서 직접적으로 내부 상태를 접근하지 못하게 하는 기능
  • 묵시적 형변환
    • 결과를 받을 때
    • 파라미터로 전달할 때
  • variable arguments (...)
    • 동일 타입의 인자가 몇 개 들어올 지 예상할 수 없을 때 사용합니다.
    • 넘겨준 값의 개수에 따라 자동으로 배열이 초기화 됩니다.

 

장점
  • 모듈화
  • 정보 은닉
    • 메서드를 통한 커뮤니케이션 메커니즘으로 밖으로부터 내부 상태를 숨길 수 있다
  • 재사용성
  • pluggable
  • 디버깅 용이

 

What Is an Class?

  • Object의 blueprint를 뜻합니다.
  • Class를 구체화하여 Object를 생성합니다.
    • 매번 설계도를 작성하지 않고 미리 정의하여 객체를 생성합니다.
  • Object는 Heap 메모리에 생성됩니다.

 

구성
  • 멤버 변수
  • 멤버 메서드

 

What Is Inheritance?

  • 객체들끼리 공통적으로 가지는 상태나 메서드를 슈퍼 클래스로부터 물려받을 수 있는 기능입니다.
  • 다른 종류의 오브젝트더라도 공통된 성질을 가질 수 있습니다.
  • 자식의 수는 제한이 없습니다.

 

What Is Interface?

  • 오브젝트가 외부와 통신하는데 사용되는 명세를 정의하는 계약입니다.
  • 인터페이스를 가진 클래스는 반드시 인터페이스 메서드를 정의해야 합니다. (컴파일러에 의해 체크됩니다)

 

What Is Package?

  • 관련 클래스 및 인터페이스가 조직된 네임스페이스 입니다.

 

 

출처