클래스의 정의

정순동·2023년 12월 3일
0

자바기초

목록 보기
22/89

이전에 클래스는 객체를 생성하기 위한 틀이라고 객체지향적 관점에서 정의를 내린적이 있다.
이번에는 프로그래밍 관점에서의 클래스의 정의를 알아보자.

데이터와 함수의 결합

  1. 변수
    하나의 데이터를 저장할 수 있는 공간
  2. 배열
    같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간
  3. 구조체
    서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
  4. 클래스
    데이터와 함수의 겨합(구조체 + 함수)

위에서 아래로의 순서이다.
처음에는 한개의 데이터를 저장하기 위한 변수를, 두번째로는 같은 종류의 여러 변수들을 손쉽게 관리하기 위해 배열을, 세번째로는 int,String,char등의 데이터 타입과 상관없이 서로 관련이 있는 데이터들을 모아 놓은 구조체(Structure)가, 네번째로는 관련있는 데이터들 뿐만 아니라 해당 데이터를 처리하는 함수(메서드)까지 한군데 모아둔 것이 클래스이다.

서로 관련된 변수들을 정의하고 이들에 대한 작업을 수행하는 함수들을 함께 정의한 것이 바로 클래스이다.
C에서는 문자열을 문자의 배열이지만 자바에서는 String이라는 클래스로 문자열을 다룬다. 문자열 배열(데이터) + 함수(메서드)가 바로 String이라는 클래스인 것이다.

사용자 정의 타입

프로그래밍언어에서 제공하는 기본 자료형(primitive type) 외에 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을'사용자정의 타입(user-defined type)'이라 한다.
자바에서는 클래스 그자체가 곧 사용자 정의 타입이다.

	class Time {
    	int hour;
        int miute;
        float second;
    }

와 같이 원래 존재하진 않던 자료형이지만 개발자가 직접 Time이라는 클래스에 시, 분, 초를 넣어 새로운 타입의 참조형자료형으로 사용하는 것이다. 만약 hour에 25를 저장하려고 하면 어떻게 되는가? 현실에서는 불가능 하지만 여기서는 메서드를 추가해 25는 못넣게 막을 수 있다. 객체지향적이지 않은 언어를 사용했다면 불가능 한 일이었다.

0개의 댓글