객체 지향 프로그래밍 OOP:Object-Oriented Programming

 

객체란?

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것.
  • 객체는 속성과 동작으로 구성
  • 객체 모델링(Object Modeling): 현실 세계의 객체를 소프트웨어 객체로 설계하는 것

 

객체의 상호작용

  • 객체들 사이의 상호작용 수단은 메소드
  • 객체가 다른 객체의 기능을 이용하는 것 == 메소드 호출
  •  

메소드 호출

  • 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2,...);
  • int result = Calculator.add(10,20);

 

객체 간의 관계

  • 객체는 개별적으로 사용될 수 있으나, 대부분 다른 객체와 관계를 맺고 있음
    • 집합관계: 하나는 부품, 하나는 완성품
    • 사용관계: 객체간의 상호작용; 객체는 다른 객체의 메소드를 호출하여 원하는 결과를 얻음
    • 상속관계: 상위객체를 기반으로 하위 객체를 생성하는 관계

 

객체와 클래스

  • 클래스: 설계도; 객체를 생성하기 위한 필드와 메소드와 정의되어 있음
  • 인스턴스: 클래스로부터 만들어진 객체

 

객체 지향 프로그래밍 개발

1. 클래스 설계

2. 설계된 클래스를 가지고 사용할 객체를 생성

3. 생성된 객체를 이용

 

 

클래스 선언

  • public 접근 제한자: 파일이름과 동일한 이름의 클래스 선언에만 붙일 수 있음
  • 파일 이름과 일치하지 않는 클래스 선언에 public 접근 제한자를 붙이면 컴파일 에러가 발생
  • 소스 파일 하나당 동일한 이름의 클래스 하나를 선언하는 것이 좋음

 

객체 생성과 클래스 변수

  • 클래스로부터 객체를 생성하려면 new 연산자를 사용
  • new 클래스();
  • new는 클래스로부터 객체를 생성시키는 연산자
  • new 연산자 뒤에 생성자가 오고 생성자는 클래서()형태를 가지고 있음
  • new 연산자로 생성된 객체는 Heap 영역에 생성됨
  • 힙영역에 객체 생성 후 객체의 번지를 리턴
  • 대부분의 객체 지향 프로그램은 라이브러리와 실행 클래스가 분리되어 있음

 

 

클래스의 구성 멤버

  • 필드: 객체의 고유 데이터, 부품 객체, 상태 정보를 저장;
    • 생성자와 메소드 전체에서 사용되며 객체가 소멸 되지 않는 한 객체와 함께 존재
  • 생성자: 생성자는 new 연산자로 호출되는 특별한 중괄호 {} 블록; 
    • 객체 생성 시 초기화 담당
    • 클래스 이름으로 되어있고 리턴 타입으 잆음
  • 메소드: 객체의 동작에 해당하는 중괄호{} 블록
    • 메소드를 호출하면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행
    • 필드를 읽고 수정하는 역할 + 다른 객체를 생성해서 다양한 기능을 수행
    • 객체 간의 데이터를 전달하는 수단
    • 외부로부터 매개값을 받아 실행 + 실행 후 결과 값을 외부로 리턴

 

 

+ Recent posts