1 minute read

6. 클래스

6.1 객체 지향 프로그래밍

부품에 해당하는 객체를 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법

객체란

  • 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것
  • 속성(필드)와 동작(메소드)로 구성
  • 객체 모델링: 현실 세계의 객체를 소프트웨어 객체로 설계하는 것

객체의 상호작용

객체들은 다른 객체와 서로 상호작용하면서 동작한다. 객체들 사이의 상호작용 수단은 메소드다.

객체 간의 관계

  • 집합 관계: 완성품과 부품의 관계
  • 사용 관계: 다른 객체의 필드를 읽고 변경하거나 메소드를 호출하는 관계
  • 상속 관계: 부모와 자식 관계

객체 지향 프로그래밍의 특징

  1. 캡슐화
    • 데이터 은닉의 목적, 응집도
    • 접근 제어자를 사용
  2. 상속(=상속 + 추상화)
    • 부모 객체는 자기가 가지고 있는 필드와 메서드를 자식 객체에게 물려주어 자식 객체가 사용할 수 있도록 한다.
    • 코드 재사용성을 높여주고 유지보수 시간을 최소화 시킨다.
  3. 다형성
    • 사용 상법은 동일하지만 실행 결과가 다양하게 나오는 성질
    • 자동 타입 변환과 재정의 기술이 필요하며 이 기술들은 상속과 인터페이스 구현을 통해 얻어진다.

6.2 객체와 클래스

  • 객체지향 프로그래밍에서도 객체를 생성하려면 설계도에 해당하는 클래스가 필요
  • 인스턴스: 클래스로 부터 생성된 객체
  • 인스턴스화: 클래스로부터 객체를 만드는 과정

6.3 클래스 선언

 public class 클래스명 {
}
  1. public -> 공개 클래스
  2. 클래스명은 캐멀스타일, 숫자를 포함O, 첫문자 숫자X, $, _ 포함가능
  • 하나의 소스 파일에 복수 개의 클래스 선언을 할 수 있다.
  • 소스 파일을 컴파일 하면 클래스 선언 수 만큼 바이트코드(.class)가 생긴다.
  • 소스 파일명과 동일한 클래스만 공개 클래스(public class)로 선언할 수 있다.
  • 그러므로 소스 파일 하나당 클래스 하나를 선언하는 것이 좋다.

6.4 객체 생성과 클래스 변수

new 클래스()
  • new 연산자는 객체를 생성시킨 후 객체의 주소를 리턴

6.5 클래스의 구성 멤버

  public class Class {
    // 필드 선언
    int fieldName;

    // 생성자 선언
    ClassName() {...}

    // 메서드 선언
    int methodName() {...}
}
  • 필드
    • 객체의 데이터를 저장하는 역할
  • 생성자
    • new 연산자로 객체ㅡㄹ 생성할 때 객체의 초기화 역할
    • 선언 형태는 메서드와 비슷하지만, 리턴타입이 없고 클래스 이름과 동일
  • 메소드
    • 객체가 수행할 동작

Updated:

Leave a comment