객체 지향 프로그래밍에서는 모든 데이터를 객체로 취급하며 이러한 객체가 프로그래밍의 중심이 된다.
자바에서 클래스란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.
클래스는 객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 매소드로 구성된다.
필드란 클래스에 포함된 변수를 의미한다.
메소드란 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있다.
자바에서 클래스를 사용하기 위해서는 해당 클래스 타입의 객체를 선언해야 한다.
클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스화 라고 한다.
이렇게 선언된 해당 클래스 타입의 객체를 인스턴스라고 한다.
즉 인스턴스란 메모리에 할당된 객체를 의미한다.
자바는 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있다.
클래스의 필드란 클래스에 포함된 변수를 의미한다.
클래스 내에서 필드는 선언한 위치에 따라 다음과 같이 구분된다.
메소드란 특정 작업을 수행하기 위한 명령문의 집합이다.
메소드를 사용하면 중복되는 코드의 반복적인 프로그래밍을 피할 수 있다.
또 모듈화로 인해 코드의 가독성이 좋아진다.
프로그램에 문제가 발생하거나 기능 변경이 필요할 때도 손쉽게 유지보수를 할 수 있다.
클래스를 가지고 객체를 생성하면 해당 객체는 메모리에 즉시 생성된다. 이렇게 생성된 객체는 모든 인스턴스 변수가 아직 초기화되지 않은 상태이다.
자바에서는 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자라는 메소드를 제공한다.
자바에서 생성자의 이름은 해당 클래스의 이름고 같아야 한다.
public class Car {
private String name; //클래스 필드
public void carname() { //클래스 메소드
}
}
Car myCar;
우선 위와 같이 객체를 참조하기 위한 참조 변수를 먼저 선언한다.
myCar = new Car();
그후 new 키워드를 사용하여 인스턴스를 생성하고 해당 인스턴스의 주소를 미리 선언한 참조 변수에 저장하여 사용한다
Car myCar = new Car();
위와 같이 선언과 인스턴스의 생성을 동시에 할 수도 있다