비디오: 무한도전 프로그래밍 013 객체지향프로그래밍에서 객체란 무엇인가? 2024
객체 지향 프로그래밍 은 Java와 같은 컴퓨터 프로그래밍의 한 유형으로 모든 프로그램이 본질적으로 컴퓨터 기반의 실제 객체 또는 추상적 개념 시뮬레이션. 예:
-
비행 시뮬레이터 프로그램은 실제 비행기의 동작을 모방하려고 시도합니다.
-
많은 컴퓨터 게임은 야구, 나스카 (NASCAR) 경주, 체스와 같이 인간이 즐기는 실제 게임을 시뮬레이션합니다.
-
비즈니스 프로그램조차도 주문 처리, 고객 서비스, 선적 및 청구와 같은 비즈니스 프로세스의 시뮬레이션으로 생각할 수 있습니다.
객체 는 특정 기본 특성을 갖는 프로그래밍 실체입니다.
-
Identity: 객체 지향 프로그램의 모든 객체는 ID 를가집니다. 즉, 특정 유형의 객체 (예: - - )가 발생할 때마다 동일한 유형의 객체는 물론 다른 유형의 객체와도 구별 될 수 있습니다.
Java는 각 객체의 신원을 그 자체로 유지합니다. 즉, 객체의 메모리 주소를 쉽게 얻을 수있는 방법이 없습니다. 자바는 귀하의 비즈니스가 아니며, 정당한 이유입니다. 자바가 그 정보를 쉽게 이용할 수 있다면, C 또는 C ++ 프로그래머가 당신에게 말할 수있는 것처럼 모든 종류의 문제를 야기 할 수있는 유혹에 빠지게 될 것입니다.
해시 코드라는 항목이 있으며,
는 모든 객체에 대해 자동으로 생성되는 int 값이고 거의 는 객체의 ID를 나타냅니다. 대부분의 경우 객체의 해시 코드는 객체의 메모리 주소를 기반으로하지만 항상 그렇지는 않습니다. Java는 두 개의 별개 객체가 동일한 해시 코드를 갖지 않을 것이라고 보장하지 않습니다. 객체와 함께 사용할 경우, 항등 연산자 (==)는 실제로 두 개의 변수 또는 표현식의 객체 ID를 테스트합니다. 동일한 오브젝트 인스턴스를 참조하는 경우 두 변수 또는 표현식은 동일하게 간주됩니다. 유형:
객체 지향 프로그래밍을 사용하면 프로그램의 다른 종류의 객체에 이름을 할당 할 수 있습니다. Java에서 클래스는 유형을 정의합니다. 따라서 유형에서 객체를 만들면 객체가 해당 클래스에서 지정한 유형임을 나타냅니다.다음 예제 문은 Invoice 유형의 객체를 만듭니다.
-
Invoice i = new Invoice (); 이 경우,이 객체의 ID (즉, 메모리의 주소)는 컴파일러가 Invoice 유형의 객체에 대한 참조를 보유 할 수있는 변수 i에 할당됩니다.
상태:
주어진 객체 유형의 각 인스턴스는 동일한 속성을 갖지만 각 인스턴스는 다른 상태, 즉 각각의 속성에 대해 서로 다른 값 조합을 갖습니다. 객체의 일부 속성은 공개되지만 다른 속성은 비공개가 될 수 있습니다. 사적인 속성은 객체의 내부 동작에 중요 할 수 있지만, 객체 외부의 아무도 그 객체가 존재한다는 것을 안다. 그들은 당신의 사적인 생각과 같습니다: 당신이 말하고 행동하는 것에 영향을 미치지 만, 아무도 당신을 알지 못합니다.
-
행동: 사물의 또 다른 특징은 사물을 할 수 있다는 것을 의미하는
행동을한다는 것입니다. 상태와 마찬가지로 객체의 특정 동작은 객체의 유형에 따라 다릅니다. 그러나 상태와 달리 동작은 유형의 각 인스턴스마다 다릅니다. 교실에있는 모든 학생들이 같은 유형의 계산기를 가지고 있다고 가정합니다. 그들 모두에게 계산기를 꺼내고 두 개의 숫자를 더해달라고하십시오. 모든 계산기는 다른 숫자를 표시하지만 모두 같은 방식으로 추가됩니다. 즉, 그들은 모두 다른 상태이지만 동일한 행동을 취합니다.
-
객체가 동작을한다고 말하는 또 다른 방법은 다른 객체가 사용할 수있는 서비스를 제공한다고 말하는 것입니다. 이미 다른 객체에 서비스를 제공하는 객체의 예제를 많이 보았을 것입니다. 예를 들어, NumberFormat 클래스에서 생성 된 객체는 숫자 값을 $ 32와 같이 멋지게 형식화 된 문자열로 변환하는 형식 서비스를 제공합니다. 95. 자바에서 객체의 행위는 메소드에 의해 제공된다. 따라서 NumberFormat 클래스의 format 메서드는 NumberFormat 객체의 서식 지정 동작을 제공합니다.