모든지 기록하자!

[Java] 객체지향 프로그래밍(OOP) 과 클래스(Class) 본문

Java

[Java] 객체지향 프로그래밍(OOP) 과 클래스(Class)

홍크 2021. 5. 11. 20:38
728x90

객체 지향 프로그래밍(OOP, Object-Oriented Programming)

객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 된다.

 

객체(object)란 간단히 이야기하자면 물리적으로 존재하거나 (자동차, 책, 사람) 추상적인 것 (회사, 날씨) 중에서 자신의 속성과 동작을 가지는 모든 것이라고 할 수 있다. 이러한 객체의 상태와 행동을 구체화하는 형태의 프로그래밍이 바로 객체 지향 프로그래밍입니다. 

 

객체지향 프로그래밍 특장점
-클래스를 이용해 연관있는 함수와 변수를 하나로 묶어 객체(인스턴스)를 생성해 사용함
-객체지향 프로그래밍 에서는 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 여러 개발자와 협업해 규모가 큰 프로젝트를 진행할 수 있으며 유지보수 측면도 뛰어나다.

장점
-코드의 재활용성이 높음
-코딩이 절차지향보다 간편함
-디버깅이 쉬움

단점
-처리속도가 절차지향보다 느림
-설계에 많은 시간소요가 들어감


Class란?

특정 객체를 생성하기 위해 변수와 메서드를 정리하는 일종의 틀

 

Class의 구성요소
   1. field
      1) 객체를 사용할때 지속적으로 사용되는 데이터
      2) 접근지정자를 주로 private로 지정
         필요에 의해 다른 접근 지정자로 쓸 수 있다. 
          
   2. constructor
      1) 객체 생성시 자동호출되는 함수
      2) 기본기능 : 객체 등록해주는 역할
         사용자기능 : 객체 생성 시 자기가 원하는 메모리 구조로 또는 값을 세팅하고 싶을 때.
      3) 접근지정자를 주로 public으로 지정 
      4) 오버로딩이 가능 
      5) 리턴타입이 없다.
         함수명이 클래스명과 동일
      6) 명시적으로 만들지 않을 경우 default constructor를 제공한다.
      7) 명시적으로 생성자를 만 들 경 우 디폴트 생성자는 존재하지 않는다. 
    
   3. method
      1) instance method , static method
         주로 instance method 사용 
         static method는 모든 객체를 공유하고자 할 때.
      2) 접근지정자 주로 public으로 지정
         외부와 내부를 연결하는 목적
         (외부에서 필드를 사용할 수 있게 해주는 중간 역할)
      3) setter / getter를 기본으로 제공함    
         외부에서(필드) 값을 주고/가져오는 것
      4) 오버로딩이 가능
      5) this를 가지고 있는 메서드 -> instance method
         this를 가지고 있지 않는 메소드 -> static method   

728x90
Comments