주요 차이점 : 클래스와 객체는 객체 지향 프로그래밍 언어의 가장 중요한 두 개념입니다. 둘 사이의 가장 큰 차이점은 클래스가 동일한 유형의 다른 객체를 만드는 데 사용되는 청사진이라는 것입니다.
OOP (Object Oriented Programming)는 더 많은 코드로 복잡한 응용 프로그램을 처리 할 수 있기 때문에 매우 인기있는 프로그래밍 스타일입니다. 클래스와 객체는 OOP 언어에서 일반적으로 사용되는 두 가지 용어입니다. 가장 기본적인 형태로, 객체는 클래스의 인스턴스 생성입니다. 이 기사에서는 두 용어를 구분합니다.
객체는 다형성과 상속에 추가 된 추상 데이터 유형의 확장입니다. 객체에는 상태 (데이터)와 동작 (코드)이 있습니다. 프로그래밍에서 핵심은 각 객체 자체가 작업 수행에 대한 책임이라는 것입니다.
객체는 특정 유형의 데이터를 유용하게 만드는 데 필요한 속성과 메서드를 포함합니다. 객체의 속성은 알고있는 것이며 그 방법은 할 수있는 것입니다. 이 메서드는 응용 프로그램에 기능을 제공하고 개체의 데이터가 올바르게 사용되는지 확인합니다. 또한 메소드는 실제 타스크 실행을 숨기고 다른 유형의 오브젝트에 대한 특정 조작에 대해 표준화 할 수있게합니다. 메서드는 클래스의 객체에 액세스하는 데 사용됩니다. 모든 상호 작용은 객체의 메소드를 통해 수행됩니다. 이를 데이터 캡슐화라고합니다. 객체는 데이터 또는 코드 숨기기에도 사용됩니다.
클래스는 객체의 청사진이라고합니다. 이것은 객체를 만드는 데 사용되는 확장 가능한 가이드입니다. 그것은 객체를 만드는 서브 루틴입니다. 클래스는 객체를 나타내지 않습니다. 그것은 객체가 가져야 만하는 모든 정보와 메소드를 나타냅니다. 하나의 클래스를 사용하여 여러 객체를 인스턴스화 할 수 있습니다. 확장 된 TYPE 선언으로 간주됩니다. 다음은 기본적인 예입니다.
클래스 샘플
{
공공 정적 무효 메인 (문자열 [] args)
{
String sampleText = "Hello world!";
System.out.println (sampleText);
}
}
'Sample'이라는 이름의 위 클래스에는 main이라는 단일 메서드가 포함되어 있습니다. main 내에서 변수 샘플 텍스트는 "Hello world!"로 정의되며 main 메소드는 'out.println'메소드가 포함 된 Java 라이브러리에서 클래스 시스템을 호출합니다.이 메소드는 샘플 텍스트를 출력 텍스트로 인쇄하는 데 사용됩니다 창문.
수업은 OOP의 기본 부분입니다. 변수와 메소드를 프로그램의 모든 부분에서 액세스 할 수있는 대신 특정 객체에서 격리 할 수 있습니다. 이러한 데이터의 캡슐화는 프로그램의 다른 부분에서의 변경으로부터 각 클래스를 보호합니다. 클래스를 사용하여 개발자는 프로그램을 쉽게 수정할 수있는 소스 코드로 구조화 된 프로그램을 만들 수 있습니다.
객체와 클래스의 비교 :
목적 | 수업 | |
정의 | 개체는 OOP에서 명령을 사용하여 사용할 수있는 개체로 정의됩니다. | 클래스는 하나 이상의 객체를 설명하기 위해 OOP에서 사용됩니다. |
변수 | 변수입니다. | 그것은 유형입니다. |
개념 | 그것은 클래스의 인스턴스입니다. | 이것은 데이터 구조의 확장 된 개념입니다. |
기억 | 메모리가 할당됩니다. | 메모리가 할당되지 않습니다. |
예 | #포함 네임 스페이스 표준을 사용; class Rectangle { int 폭, 높이; 공공의: void set_values (int, int); int area () {리턴 폭 * 높이;} }; void Rectangle :: set_values (int x, int y) { 폭 = x; 높이 = y; } int main () { 사각형 rect, rectb; rect.set_values (3, 4); rectb.set_values (5, 6); cout << "rect 영역 :"<< rect.area () << endl; cout << "직사각형 영역 :"<< rectb.area () << endl; 0을 반환; } | Rectangle 클래스 { int 폭, 높이; 공공의: void set_values (int, int); int 영역 (void); } rect; |
식별자 | 'object_names'는이 클래스의 객체에 대한 선택적 이름 목록입니다. | 'class_name'은 클래스의 유효한 식별자입니다. |
목적 | 데이터 추상화 및 추가 상속 | 데이터 그룹화 |
유형 | 참고 | 값 |