[Section 1] 객체 지향 프로그래밍 기초 (클래스, 객체, 필드, 메서드)

dohyoungK·2023년 4월 21일
0

객체 지향 프로그래밍 (OOP)

객체 지향 프로그래밍 (OOP: Object Oriented Programming) 이란, 프로그램 구현에 필요한 데이터를 속성과 기능을 중심으로 추상화시켜 객체를 만들고 그 객체들 간 상호작용을 통해 기능을 구성하는 프로그래밍 방법론

  • 클래스 (Class)

    : 객체를 생성하는 데 사용되는 설계도, 틀

    • 클래스의 구성

      class 클래스명1 {
         String color = "red"; // (1) 필드
         void printColor {...} // (2) 메서드
         클래스명1 {...} // (3) 생성자
         class 클래스명2 {...} // (4) 이너 클래스
      }
      (1) 필드: 클래스의 속성을 나타내는 변수
      (2) 메서드: 클래스의 기능을 나타내는 함수
      (3) 생성자: 클래스의 객체(인스턴스)를 생성하는 역할
      (4) 이너 클래스: 클래스 내부에 존재하는 클래스

  • 객체 (Object)

    : 속성과 기능으로 이루어진 모든 실재하는 어떤 대상

    • 객체 생성

      클래스명 참조_변수명;
       참조_변수명 = new 생성자();
    • 객체 활용

      참조_변수명.필드명 // 필드 접근
       참조_변수명.메서드명() // 메서드 호출

  • 필드 (Field)

    : 클래스에 포함된 변수, 객체의 속성을 정의

    class Ex {
       int intstanceVariable; // (1) 인스턴스 변수
       static int classVariable; // (2) 클래스 변수
       
       void method() {
          int localVariable = 0; // (3) 지역 변수
       }
    }

    (1) 인스턴스 변수: static 키워드가 붙지 않은 변수, 각 인스턴스가 고유한 값을 가짐
    (2) 클래스 변수: static 키워드가 붙은 변수, 모든 인스턴스가 값을 공유(객체 생성없이 사용 가능)
    (3) 지역 변수: 메서드 내에 포함된 모든 변수, 메서드 내에서만 사용 가능

  • 메서드 (Method)

    : 클래스의 기능을 담당, 특정 기능을 수행하는 명령문들의 집합

    • 메서드 구성

      자바제어자 반환타입 메서드명(매개변수) { // 메서드 시그니처
         메서드 내용 // 메서드 바디
      }
      
      public double divide(double x, double y) () {
         double result = x / y;
         return result;
      }

      : 이름이 divide인 메서드로 double 2개를 받아서 나눈 다음 double 결과를 반환

    • 메서드 호출

      • 인스턴스를 생성 후, '.'를 사용해 호출한다.
      • 클래스 내부에서는 객체 생성없이 호출이 가능하다.
    • 메서드 오버로딩 (Method Overloading)

      : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것

      • 메서드명이 같을 때
      • 메서드 매개변수의 개수나 타입이 다를 때

0개의 댓글