객체 지향 프로그램은 객체로 구성되며, 각 객체는 사용자에게 노출 된 특정 기능 부품 및 숨겨진 구현 부품을 포함합니다. OP (Object-Oriented Programming)에서는 객체의 특정 구현에 신경을 줄 필요가 없습니다. 기존의 구조화 된 프로그래밍에서 알고리즘은 1 위이며 데이터 구조는 두 번째 순위입니다. 즉, 먼저 작동 방법을 결정한 다음 데이터를 구성하여 작동을 용이하게하는 방법을 고려하십시오. OOP는이 순서를 뒤집고 데이터를 먼저 넣은 다음 데이터를 작동하는 알고리즘을 고려합니다.
I. 수업
클래스는 개체 구성을위한 템플릿 및 청사진입니다. 평신도의 용어로는 건물의 그림과 동일하지만 물체는 건물과 동일합니다. 클래스에서 객체를 구성하는 프로세스를 객체의 인스턴스를 만드는 것입니다.
Java에서 "클래스"는 키워드 클래스에 의해 정의되고 클래스 이름이 뒤 따릅니다. 예를 들어:
클래스 사람 {// 클래스 바디 콘텐츠}개인 수업이 정의됩니다.
1. 필드와 방법
클래스를 정의 할 때 클래스에서 두 가지 유형의 요소를 설정할 수 있습니다 : 데이터 멤버 및 멤버 함수. 데이터 멤버가 모든 유형 일 수있는 객체 인 경우. 객체를 가리키는 핸들 인 경우이 핸들은 생성자를 통해 실제 객체에 초기화되고 연결되어야합니다. 기본 데이터 유형 인 경우 클래스 정의 위치에서 직접 초기화 할 수 있습니다.
각 객체는 자체 데이터 구성원을위한 저장 공간을 유지합니다. 데이터 구성원은 객체간에 공유되지 않습니다.
클래스 사람 {문자열 이름; 이중 급여;} new 키워드로 객체를 만듭니다. 좋다:
사람 P = 새로운 사람 ();
(1) 마스터 멤버의 기본값
특정 마스터 데이터 유형이 클래스 멤버에 속하는 경우 초기화가 기본값을 얻을 수 있는지 확인할 수는 없습니다.
| 기본 유형 | 기본값 |
| 부울 | 거짓 |
| 숯 | '/u0000'(null) |
| 바이트 | (바이트) 0 |
| 짧은 | (짧은) 0 |
| int | 0 |
| 긴 | 0L |
| 뜨다 | 0.0F |
| 더블 | 0.0D |
변수가 클래스의 멤버 변수 인 경우 기본 유형에 대해서는 확실히 초기화되며 초기화 된 값에 특별한주의를 기울여야합니다. 로컬 변수의 경우, int x; 자동으로 0으로 초기화되지 않습니다.
(2) 방법
이 방법의 기본 구성 요소에는 이름 , 독립 변수 , 반환 유형 및 본문이 포함됩니다. 이 방법의 기본 형태는 다음과 같습니다.
返回类型方法名(/*自变量列表*/) {/* 方法体*/}반환 유형은 메소드가 호출 된 후 리턴 된 숫자 유형을 나타냅니다. 메소드 이름 은 특정 메소드의 식별 및 참조입니다. 인수 목록에는 메소드에 전달하려는 정보의 유형과 이름이 나열되어 있습니다.
Java 에서이 방법을对象名.方法名
1. 핸들을 사용하여 개체를 작동하십시오
Java는 완전히 객체 지향적 이지만. 그러나 작업의 식별자는 실제로 "참조"라고도하는 객체의 "핸들" 을 가리 킵니다. 손잡이가 독립적으로 존재할 수 있으며, 손잡이가있는 경우 해당 객체가 있어야합니다. 예를 들어, int i; 정수 변수 i를 정의하는데, 이는 값이 있어야한다는 의미는 아닙니다. 예를 들어 문자열 핸들을 만듭니다.
문자열 s;
여기서 손잡이 만 생성되고 객체가 생성되지 않습니다. S에는 관련된 객체가 없으므로 S가 호출되면 예외가 나타납니다. 따라서 작성시 초기화가 필요합니다.
문자열 s = "hello";
Java에서는 새 키워드로 객체가 생성되며 객체 (즉, 핸들)에 대한 참조를 반환합니다. 그래서
문자열 s = 새 문자열 ( "hello");
콘텐츠 "hello"가있는 문자열 객체가 생성되었고 객체의 핸들 (참조)을 저장하기 위해 S로 넘겨주었습니다.
2. 데이터 저장의 위치
1. 등록. 프로세서 내부에 위치한 가장 빠른 절약 영역. 레지스터의 크기는 제한되어 있으며 크기는 컴파일러에 의해 할당됩니다.
2. 스택. 일반 RAM (랜덤 액세스 메모리) 영역에 상주하면 크기는 "스택 포인터"를 통해 변경할 수 있습니다. 스택 포인터를 아래로 이동하면 새로운 메모리 공간이 생성됩니다. 위로 올라가면 메모리 공간이 정해집니다. 프로그램을 만들 때 Java 컴파일러는 스택에 저장된 모든 데이터의 "길이"및 "존재 시간"을 정확히 알아야하며 컴파일러는 해당 코드를 생성하여 포인터를 이동합니다. Java 객체의 핸들이 저장되어 있지만 Java 객체는 스택에 저장되지 않습니다.
3. 힙. 자바 객체가 저장되는 정기적 인 목적을위한 메모리 풀. 컴파일러는 "메모리 힙"또는 "힙"에서 얼마나 많은 저장 공간이 할당되는지, 그리고 데이터가 얼마나 오래 지속 될지 알지 못하거나 알아야합니다.
4. 정적 저장. 정적은 고정 위치 (RAM)를 나타냅니다. 프로그램이 실행되는 동안 정적으로 저장된 데이터는 언제든지 통화 할 수 있습니다. 객체의 특정 요소가 정적 키워드에 의해 정적임을 나타냅니다. 자바 자체는 정적 저장 공간에 배치 할 수 없습니다.
5. 일정한 저장. 상수 값은 일반적으로 프로그램 코드 내부에 배치되며 결코 변경되지 않습니다.
6. 비 램 스토리지. 데이터가 프로그램과 완전히 독립적 인 경우 프로그램이 실행되지 않고 프로그램의 제어 범위 내에있을 때 여전히 존재할 수 있습니다. 예를 들어 스트리밍 객체 및 고정 객체.
2. 객체
객체의 세 가지 주요 특성 :
• 객체 동작 - 객체에 어떤 작업을 적용 할 수 있습니까? 또는 객체에 어떤 방법을 적용 할 수 있습니까?
• 객체 상태 - 해당 메소드를 추가 할 때 객체가 어떻게 반응합니까?
• 객체 식별 - 동일한 동작 및 상태로 다른 객체를 식별하는 방법은 무엇입니까?
객체의 동작은 호출 가능한 방법으로 정의됩니다. 각 객체는 현재 기능을 설명하는 정보를 보유하고 있으며, 이는 객체의 상태입니다. 물체의 상태는 자발적으로 변하지 않습니다. 잘 설계된 클래스는 통화 방법으로 만 구현할 수 있습니다. 메소드 호출없이 객체의 상태가 변경되면 캡슐화가 파괴되었음을 의미합니다.
캡슐화 : 패키지의 데이터와 동작을 결합하고 객체의 소비자의 데이터를 숨기는 구현 방법. 캡슐화의 핵심은 클래스의 메소드가 다른 클래스의 인스턴스 도메인에 직접 액세스해서는 안된다는 것입니다. 프로그램은 객체의 메소드 도메인 객체 데이터를 통해서만 상호 작용합니다.
객체의 데이터를 인스턴스 필드 또는 속성이라고합니다. 데이터 조작 프로세스를 방법이라고합니다. 각 특정 객체에 대해 특정 인스턴스 도메인 값 (속성 값) 세트가 있으며,이 값의 세트는 객체의 현재 상태입니다.
수업 간의 관계
수업 간의 일반적인 관계 :
• 종속성 ( "사용 A") : 한 클래스의 방법은 다른 클래스의 객체를 조작합니다.
• 집계 ( "has-a") : 한 클래스의 객체에는 다른 클래스의 객체가 포함되어 있습니다.
• 상속 ( "IS-A") : 특수와 일반 간의 관계를 나타내는 데 사용됩니다. 클래스 A가 클래스 B (A 상속 B)를 연장하는 경우 클래스 A에는 클래스 B 방법뿐만 아니라 확장 방법도 포함됩니다.
객체는 실제로 객체를 포함하지 않고 객체만을 나타냅니다.
Java에서 모든 객체 변수의 값은 다른 장소에 저장된 객체에 대한 참조입니다. 새 연산자의 반환 값도 참조입니다.
위의 기사는 Java 클래스와 객체를 종합적으로 이해하는 것이 내가 공유 한 모든 내용입니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.