[자바/JAVA] 객체 생성하는법 | 인스턴스 변수를 사용하기 위해

자바는 여러 클래스를 만들 수 있고 각 클래스에 선언된 변수를 다른 클래스에서 사용할 수 있다.

 

우선 용어의 정의부터 명확히 해야 혼동을 막을 수 있다. 자바에선 객체를 생성하는 행위를 설명할 때 객체, 변수, 인스턴스, 클래스 등 묘하게 비슷한 뉘앙스를 풍기는 단어를 섞어서 사용하기 때문이다.

 

변수는 값을 저장할 수 있는 공간이다. 예를 들어

int a = 1;

a는 메모리에 1이라는 값을 넣는 그릇. 변수다. 비교적 일반적이고 포괄적인 의미라고 볼 수 있다. 

 

객체(object)객체지향 프로그래밍에서 사용되는 개념이다. 어떤 대상이나 개념을 하나의 단위로 묶어내는 걸 말한다. 속성과 기능으로 이루어진다. 예를 들어 자동차는 모델, 연식, 색상, 속도 등의 속성을 가지고 있다. 속력을 높이고 줄이는 기능도 있다. 객체지향 프로그래밍에서는 이런 식으로 어떤 대상의 개념을 하나의 클래스에 만들어 낸다.

class Car {
	String model;
	int year;
	String color;
	int speed;
    // 자동차의 속성: 모델, 연식, 색상, 속도
    
    void speedUp() {speed+=10;}
	void speedDown() {speed-=10;}
	void Stop() {speed=0;}
    // 자동차의 기능: 속도 조절
}

 

인스턴스(instance)는 객체와 같은 의미로 사용된다고 보면 된다. 객체 ≒ 인스턴스

 

클래스(Class)는 객체를 구성하는 코드다. 코드로 구현돼 메모리에 실제로 존재하는 데이터가 객체다. 클래스는 직접 사용할 수 없으며 항상 객체로 만들어서 사용해야 한다.


위 예시처럼 Car 클래스를 만들면 다른 클래스에서도 Car 클래스의 객체를 사용할 수 있다. 다른 클래스에서 Car 클래스의 객체를 생성하는 방법은 이렇다.

Car c = new Car();
// 클래스명 참조변수명 = new 클래스명();

참조변수(c)는 Car 클래스의 객체를 저장하기 위한 그릇이다. 이름은 임의로 정하면 된다. 참조변수에는 Car 클래스 객체의 주소가 저장된다.

 

이제 CarTest 라는 클래스에서 Car 클래스의 객체를 생성하고 메서드를 호출해보자. 메서드를 호출하는 방법은 참조변수명.메서드명();이다.

class Car {
	String model;
	int year;
	String color;
	int speed;
    // 자동차의 속성: 모델, 연식, 색상, 속도
    
    void speedUp() {speed+=10;}
	void speedDown() {speed-=10;}
	void Stop() {speed=0;}
    // 자동차의 기능: 속도 조절
}
public class CarTest {
	public static void main(String[] args) {
		Car c = new Car();
		
		c.speedUp();
		c.speedUp();
		c.speedUp();
		c.speedUp();
		
		System.out.println(c.speed);
	}
}

결과값

40
반응형

댓글

Designed by JB FACTORY