티스토리 뷰

  • 객체지향 6장
  1. 객체지향이론의 기본 개념
    실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.
    실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨
    놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의 실험을 하여 많은 시간과 비용을 절약한다.

객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전되었다.

  1. 객체지향언어
    몇 가지 새로운 규칙을 추가한 보다 발전된 형태이다.
    • 주요 특징
      1. 코드의 재사용성이 높다.
        새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
      2. 코드의 관리가 용이하다.
        코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
      3. 신뢰성 높은 프로그래밍을 가능하게 한다.
        제어자와 메서드를 이용하여 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여
        코드의 불일치로 인한 오동작을 방지할 수 있다.
      4. 정리 : 코드의 재사용성이 높고, 유지보수가 용이하다.
  1. 클래스와 객체
    클래스 : 객체를 정의해 놓은 것 , 설계 또는 틀이다.
    클래스로 부터 만들어진 것을 객체라고 하며, 클래스의 인스턴스화 되었다고 한다. 따라서 인스턴스라고도 한다.객체는 속성과 기능 두 종류로 구성된다.
    즉, 객체는 속성과 기능의 집합이다.
  2. 속성(property) : 맴버변수, 특성, 필드, 상태
    기능(function) : 메서드, 함수, 행위
  3. 단, 객체는 인스턴스를 대표하는 포괄적인 의미를 갖고, 인스턴스는 어떤 클래스로부터 만들어진
    것인지를 강조하는 보다 구체적인 의미를 갖고 있다. 인스턴스 클래스로 부터 만들어진 것들을 개개를
    의미하는 바가 있다.
  4. 클래스의 생성new로 불러오기 전까지 변수는 참조변수로 null을 지칭하고 있다.
    이 때 new를 불러오면 참조변수에 객체의 메모리 주소가 할당되어, 객체를 컨트롤 할 수 있게 된다.
    즉, new를 통해 인스턴스를 생성하는 것이지, 변수 t 자체가 인스턴스인 것은 아니다. 단지 변수 t는
    참조 변수로서 공간을 마련한 것일 뿐이다.단, 하나의 참조변수가 여러개의 인스턴스 주소를 가질 수는 없다.
  5. 인스턴스는 참조변수를 통해서 제어해야한다. 따라서, 인스턴스에 참조변수가 없다면 인스턴스를 제어할 수 없어 사라지게 된다.
    정리 : 인스턴스는 참조 변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.
  6. 클래스명 변수명; 변수명 = new 클래스명(); Tv t; t = new Tv();
  7. 객체 배열
    참조변수의 기본값은 null이므로 다음과 같이 선언하면 아무것도 없는 참조변수 배열이 된다.
     tvArr[0] = new Tv();
     tvArr[1] = new Tv();
    또는 다음과 같이 초기화를 할 수 있다.다형성을 이용하면 여러 종류의 객체를 하나의 배열 또는 참조변수에 담아낼 수 있다.
  8. Tv[] tvArr = {new Tv(),new Tv(),new Tv() };
  9. Tv[] tvArr = new Tv[3]; // 참조변수 배열을 만든 것이지, 인스턴스를 만든 것은 아니다.
  10. 클래스에 대한 프로그래밍적인 이해
    1. 클래스는 유저 defined 데이터 타입이다.
    2. 클래스는 관련된 속성을 가지고 있는 구조체의 특성 띄지만, 메서드(함수) 의 기능도 같이 가져간다.
  11. 변수와 메서드
    1. 클래스에서 변수
      1. 클래스 변수
      2. 인스턴스 변수
      3. 지역 변수
        변수의 종료를 결정 -> 변수가 선언된 위치 => 맴버변수를 제외한 나머지 변수들은 모두 지역 변수들이며, 맴버 변수들 중에 static이 붙은 것이
        클래스 변수, 나머지를 인스턴스 변수라고 한다.
      class Variables{
       int value; //맴버 변수 -> 인스턴스 변수
       static int value; // 맴버 변수 -> 클래스 변수
       void method(){
           int value; // 지역 변수
       }
      }
    2. 생성시기
      • 클래스 변수는 클래스가 메모리에 올라갈 때 생성
      • 인스턴스 변수는 인스턴스가 생성되었을 때 생성
      • 변수 선언문이 실행되었을 때클래스 변수는 Car.variable 로 접근 가능할 뿐더러 인스턴스 변수로도 참조 가능하다.
        car.variable로도 접근 가능하다는 것이다.
      • 클래스 변수는 모든 인스턴스가 공통된 저장공간(변수)를 공유하게 된다.
        클래스가 메모리에 로딩될 때 생성되며 프로그램이 종료될 대 까지 유지된다.
        public이 붙으면 프로그램 내에서 어디서나 접근할 수 있는 전역변수의 성격을 갖는다.
  12. 메서드
    1. 메서드의 장점
      1. 높은 재사용성
      2. 중복된 코드의 제거
      3. 프로그램 구조화
    2. 메서드의 선언에 입력하는 값들을 파라미터라고 한다. 반면 메서드를 호출할 때 넣는 값을 인자 또는 아규먼트라고 한다.
    3. 클래스의 메서드 끼리는 서로 내부에서 호출이 가능하지만, static으로 선언된 메서드는 내부 메서드를 호출할 수 없다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함