본문 바로가기
IT/자바

자바 정리 - 객체 지향 프로그램(OOP : Object-Oriented Programming)

by 김보리 2021. 11. 30.
728x90
반응형

객체 지향 프로그램 (OOP : Object-Oriented Programming)

 

객체(Object) 

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것
  • 속성(필드(field) + 동작(메소드(method))로 구성
  • 클래스로부터 생성되며, new 클래스( )로 생성

 

객체와 객체 간의 상호작용

  • 메소드를 통해 객체들이 상호작용
  • 메소드 호출 : 객체가 다른 객체의 기능을 이용하는 것

 

클래스(class)

  • 자바의 설계도 (객체를 만들기 위한 설계도)
  • 인스턴스(instance) : 클래스로부터 만들어진 객체 (객체는 클래스의 인스턴스)
  • 하나의 클래스로 여러개의 객체 생성 가능
  • 객체지향 프로그래밍 단계

 

클래스 변수 : 클래스로 선언한 변수, 해당 클래스의 객체 번지가 저장됨

 

new 연산자 : 객체 생성 연산자, 생성자를 호출하고 객체 생성 번지를 리턴

 

클래스 선언

  • 객체 구상 후 클래스 이름을 결정
  • 클래스 이름.java로 소스 파일 생성

 

클래스 멤버 

  • public class ClassName {
      // 필드(Field) : 객체의 데이터가 저장되는 곳(변수형태)
      int fieldname;
      // 생성자(Constructor) : 객체 생성 시 초기화 역할 담당
      ClassName( ) { ··· }
      new를 통해 객체 생성
      // 메소드(Method) : 객체의 동작에 해당하는 실행 블록
      void methodName( ) { ··· }
    }






필드(Field) : 객체의 고유 데이터를 저장

  • 선언형태는 변수와 비슷
  • 생성자와 메소드 전체에서 사용, 객체가 소멸되지 않는 한 객체와 함께 존재
  • 객체가 가져야 할 부품
  • 객체의 현재 상태 데이터 등을 저장
  • 필드 선언

 

생성자(Constructor)  : 클래스로부터 new 연산자로 객체 생성 시 호출되어 객체의 초기화 담당

  • new 연산자로 호출되는 특별한 중괄호 { } 블록
  • 필드를 초기화하거나 메소드를 호출해 객체를 사용할 준비를 함
  • 클래스 이름으로 되어 있고, 리턴 타입이 없음
  • 객체초기화 : 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것
  • 생성자 선언
    클래스(매개변수 선언, …) {
      // 객체의 초기화 코드 }
  • 생성자 오버로딩(overloading)

 

메소드(Method) : 객체의 동작에 해당하는 실행

  • 객체의 동작에 해당하는 중괄호 { } 블록
  • 중괄호 블록의 이름 == 메소드 이름
  • 메소드 호출 시 모든 코드들이 일괄적으로 실행
  • 필드를 읽고 수정하는 역할 외에 다른 객체 생성해 다양한 기능 수행
  • 객체 간의 데이터를 전달하는 수단
  • 외부(호출한 곳)로부터 매개값을 받아 실행에 이용,
    실행 후 결과 값을 외부(호출한 곳)로 리턴할 수 있음
  • 메소드 선언부(signature)
  • 메소드 이름

 

  • 메소드 오버로딩 : 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것

선언= 매개 변수(parameter)

호출 = 인수(argument)

매개변수(Parameter)의 개수를 모를 경우

  • 매개 변수를 배열 타입으로 선언
    int sum1(int[ ] values) { }
  • 배열 생성하지 않고 값의 목록만 넘겨주는 방식 = 가변 인수(Variable Argument)
    int sum1(int...  values) { }

리턴(Return)문

  • 리턴값이 있는 메소드 : 메소드 선언에 리턴 타입 있는 메소드는 리턴문 사용하여 리턴값 지정
  • 리턴값이 없는 메소드(void) : void 선언된 메소드에서 return문 사용하여 메소드 실행 강제

Lambda

- 함수(function)

- Consumer(소비자)

- Supplier (공급자)

- Runnable(동작) - 실행하고 끝

 

객체 외부에서 호출

  • 우선 클래스로부터 객체 생성
  • 참조 변수와 도트 연산자  사용하여 메소드 호출

     - 참조변수.메소드(매개값, …);

     - 타입변수 = 참조변수.메소드(매개값, …); // 리턴값이 있음

 

728x90
반응형

'IT > 자바' 카테고리의 다른 글

자바 정리 - 상속  (0) 2021.11.30
자바 정리 - 인스턴스 멤버와 정적 멤버  (0) 2021.11.30
자바 정리 - 배열, 열거타입  (0) 2021.11.30
자바 정리 - 타입  (0) 2021.11.30
자바 정리 - 반복문  (0) 2021.11.30

댓글