자바(JAVA) 객체지향언어 및 클래스와 객체
자바(JAVA)는 객체지향(Object Oriented) 프로그래밍 언어입니다. 객체지향 프로그래밍의 근간이되는 객체지향이론은 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물(객체)간의 상호작용이라는 기본 개념을 가지고 있습니다.
이번 포스팅에서는 자바의 클래스, 객체, 변수, 메서드, 오버로딩, 오버라이딩, 생성자에 대해서 알아보겠습니다.
1. 객체지향언어
객체지향언어는 기존의 프로그래밍 언어에 몇가지 새로운 규칙을 추가하여 보다 발전된 형태의 언어입니다. 이러한 규칙들을 이용해서 코드간에 서로 관계를 맺어주어 보다 유기적으로 프로그램을 구성하는 것이 가능합니다.
객체지향언어의 주요 특징은 다음과 같습니다.
- 코드의 재사용성이 높다.
: 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.
- 코드의 관리가 용이하다.
: 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
- 신뢰성이 높은 프로그래밍을 가능하게 한다.
: 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.
2. 클래스와 객체
클래스란 객체를 정의해놓은 것입니다. 또한 객체의 설계도 또는 틀이라고 정의할 수 있습니다. 클래스는 객체 생성을 위해 사용되며 객체는 클래스에 정의된대로 생성됩니다.
객체는 실제로 존재하는 것을 의미하며 우리 주변에서 볼 수 있는 TV, 책상, 자동차와 같은 사물들을 의미합니다. 객체지향이론에서는 사물과 같은 유형적인 것과 함께 개념이나 논리같은 무형적인 것들도 객체로 간주합니다. 프로그래밍 관점에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 의미합니다.
2.1 객체와 인스턴스
클래스로부터 객체를 만드는 과정을 인스턴스화라고하고 만들어진 객체를 인스턴스라고 합니다.
객체와 인스턴스는 같은 의미이지만 객체는 좀 더 이론적인 관점에서 포괄적인 의미를 가지고 있으며 인스턴스는 프로그래밍 관점에서 구체화가 좀 더 강조된 의미를 가지고 있습니다.
2.2 객체의 구성요소
객체는 속성과 기능의 구성요소로 이루어져 있으며 속성은 멤버변수 기능은 메서드라는 용어로 주로 사용합니다.
다음 예제 코드를 통해 멤머변수와 메서드의 구성 및 인스턴스의 생성과 사용 방법에 대해 알아보겠습니다.
public class TV { String color; boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } public static void main(String[] args) { TV tv = new TV(); tv.channel = 7; tv.channelDown(); System.out.println("Tv channel is " + tv.channel); } }
위의 예제 실행시 다음의 결과가 출력됩니다.
Tv channel is 6
일반적으로 클래스는 멤버변수를 먼저 선언하고 그 뒤에 메서드를 작성하며 멤버변수와 메서드는 서로 모아서 작성해줍니다.
인스턴스의 생성 방법은 일반적으로 다음과 같습니다.
클래스명 변수명 = new 클래스명();
ex) TV tv = new TV();
위의 TV 클래스 인스턴스를 생성한 후 참조변수를 통해서 사용이 가능합니다. 예제에서 참조변수는 tv이며 멤버변수와 메서드의 사용을 위해서는 참조변수 뒤에 점(.)을 붙여 호출합니다.
※ 클래스
프로그래밍 관점에서의 클래스는 데이터와 함수의 결합입니다. 프로그래밍 언어에서 데이터 처리를 위한 저장형태의 발전과정은 다음과 같습니다.
1. 변수 : 하나의 데이터를 저정할 수 있는 공간
2. 배열 : 같은 종류의 여러 데이터를 저장할 수 있는 공간
3. 구조체 : 종류에 상관없이 여러 데이터를 저장할 수 있는 공간
4. 클래스 : 데이터와 함수의 결합 (구조체 + 함수)
이상으로 자바의 객체지향 언어의 특징과 클래스, 객체에 대해서 알아봤습니다.
※ 참고 문헌
남궁성, 『Java의 정석 2nd Edition』, 도우출판(2010)