위 스크린샷을 보면 ObjectTest 클래스 영역에 정의한 i를 출력하려고 해도
에러가 뜨면서 출력이 되지 않는 것이 보이는데
i로 선언한게 없는데 i 값을 어떻게 가져옴?
이런 에러가 뜨는 것이다
클래스는 메소드와 변수들을 모아 놓은 설계도(Blueprint)에 불과하기 때문에
객체화를 해서 클래스의 정보들을 객체 안에 담아줘야 사용 가능한데
현재는 객체화를 하지 않고 클래스에 들어있는 값을 가져오려고 하니 안되는거다
따라서 객체화를 해 줘야하는데
객체화는 어떻게 하냐면
일단 ObjectTest 타입의 ot를 선언하고
ot = new ObjectTest(); 를 해 줘서
ot 안에 ObjectTest 클래스의 정보를 넘겨준다는 얘기다
설명을 위해서 두개로 쪼갰는데
대부분의 경우에는 ObjectTest ot = new ObjectTest(); 이런 식으로 사용한다
이렇게 ot안에 ObjectTest의 모든 정보를 넣어주면
ot.i로 ObjectTest 안의 int i 값을 가져다 쓸 수 있다
마지막으로 간단히 정리해보자면
객체화(인스턴스화)란?
메소드와 변수를 모아놓은 것에 불과한 클래스를 사용할 수 있도록
해당 클래스 타입의 객체명을 선언하고 값을 넣어줘서
해당 클래스의 변수나 메소드를 사용 가능한 상태로 만드는 것
예제코드는 아래를 참고해주면 된다
public class ObjectTest {
int i = 10;
public static void main(String[] args) {
ObjectTest ot; // ObjectTest 타입의 ot 선언
ot = new ObjectTest(); // ot 안에 ObjectTest Class 넣어주기
System.out.println(ot.i);
}
}