객체지향 프로그래밍(1강 - 5강)

객체지향 프로그래밍과 클래스

객체지향 프로그래밍
  • 객체 지향 프로그래밍(Object Oriented Programmng)
    • 객체를 기반으로 하는 프로그래밍
    • 객체를 정의하고 객체의 기능과 객체간의 협력 구현

cf. 절차 지향 프로그래밍(Procedural Programming)

  • 시간이나 사건의 흐름에 따른 구현
  • C언어
클래스(class)
  • 객체를 코드로 구현한 것
  • 객체 지향 프로그래밍의 가장 기본 요소
  • 객체의 청사진
  • java 파일 하나에 여러 클래스가 존재할 수 있지만 public 클래스는 하나이고 파일명과 public class 이름은 동일해야 함
멤버 변수, 메서드
  • 멤버 변수
    • 객체가 가지는 속성을 변수로 표현
    • 클래스의 멤버 변수
    • member variable, property, attribute
  • 메서드
    • 객체의 기능을 구현
    • method, member function

함수와 메서드

함수
  • 하나의 기능을 수행하는 일련의 코드
  • 함수는 호출하여 사용하고 기능이 수행된 후 값을 반환할 수 있음
  • 함수로 구현된 기능은 여러 곳에서 호출되어 사용될 수 있음
  • 함수에서 사용하는 메모리는 stack memory라고 함
함수 정의 하기
  • 함수는 이름, 매개변수, 반환 값, 함수 몸체(body)로 구성

    int add(int num1, int num2) {
      int result;
      result = num1 + num2;
      return result
    }
    
메서드
  • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수

  • 메서드를 구현함으로써 객체의 기능이 구현됨

  • 메서드의 이름은 클라이언트 코드에 맞게 명명하는 것이 좋음

    public class Student {
      public int studentID;
        
      public String getStudentID() {
        return studentID;
      }
    }
    

인스턴스, 힙 메모리

인스턴스(instance)
  • 클래스로부터 생성된 객체
  • 힙(heap) 메모리에 멤버 변수의 크기에 따라 메모리 생성
  • 각각의 인스턴스는 별개의 메모리 생성
  • 클래스를 기반으로 new 키워드를 이용하여 여러 인스턴스 생성
참조 변수와 참조값
Student lee = new Student();
System.out.println(lee);	// 참조변수 출력
용어 정리
용어 설명
객체 객체 지향 프로그래밍의 대상, 생성된 인스턴스
클래스 객체를 프로그래밍 하기 위해 코드로 만든 상태
인스턴스 클래스가 메모리에 생성된 상태
멤버 변수 클래스의 속성, 특성
메서드 멤버 변수를 이용하여 클래스의 기능 구현
참조 변수 메모리에 생성된 인스턴스를 가리키는 변수
참조 값 생성된 인스턴스의 메모리 주소 값