주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 클래스를 선언한 다음, 컴파일을 했다면(이클립스에서는 저장) 객체를 생성할 설계도가 만들어진 셈입니다. 클래스로부터 객체를 생성하는 방법은 다음과 같이 new 연산자를 사용하면 됩니다. new 클래스이름(); new는 클래스로부터 객체를 생성하는 연산자입니다. new 연산자 뒤에는 '생성자'가 오는데, 생성자는 '클래스 이름()'의 형태를 가지고 있습니다. new 연산자로 생성된 객체는 메모리 힙(heap) 영역에 생성되고, new 연산자는 힙 영역에 생성된 객체의 주소를 반환합니다. 이 주소를 참조 타입인 클래스 변수에 저장해 두..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 객체와 클래스 사람들이 자동차를 이용하기 위해서는 우선 자동차를 만들어야 합니다. 그리고 자동차를 만들기 위해서는 자동차 설계도가 필요합니다. 객체 지향 프로그래밍에서도 마찬가지입니다. 메모리에서 사용하고 싶은 객체가 있다면 우선 설계도를 만들어야 합니다. 자바에서는 이 설계도를 '클래스(class)'라고 합니다. 클래스에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있습니다. 클래스로부터 만들어진 객체를 해당 클래스의 '인스턴스(instance)'라고 합니다. 자동차 객체는 자동차 클래스의 인스턴스인 셈입니다. 그리고 클래스로..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 캡슐화 캡슐화란 객체의 필드, 메서드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말합니다. 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용할 수 있습니다. 필드와 메서드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는 데에 있습니다. 자바는 캡슐화된 멤버를 노출시킬 것인지, 숨길 것인지를 결정하기 위해서 접근 제한자를 사용합니다. 접근 제한자는 객체의 필드와 메서드의 사용 범위를 제한함으로써 외부로부터 보호합니다. 상속 객체 간의 관계에서 상속 관계..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 현실 세계에서 어떤 제품을 만들 때, 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 완성된 제품을 만들 듯이, 소프트웨어를 개발할 때에도 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍이라고 합니다. 객체 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말합니다. 예를 들어 물리적으로 존재하는 자동차, 자전거, 사람, 책 등과 추상적인 학과, 강의, 주문 등이 모두 객체가 ..