객체 지향의 본질 (JAVA, C ++)

차이 객체 지향 및 프로세스 지향 :

아이가 간 전문 자율 학습 언어 c를, 프로세스 지향 프로그래밍 있으며, 파스칼 배운
C를 배우고 지금 ++, 파이썬, 자바는 객체 지향 프로그래밍이다.
온라인 상태 인 다른 설계 방식
프로그래밍 프로세스 : 당신은 문제를 해결하기 위해 모든 단계를 볼 수 있습니다, 각 단계는 불가분하게 연결되어있을 수 있습니다.
개체 프로그래밍 : 당신은 어떤 문제를 해결하기 위해 모듈 무엇을 볼 수있는, 독립적 인 모듈이며, 특정 프로세스를 해결하는 방법, 그것은 블랙 박스이다.
문제는 있지만, 다른 방법으로 해결되었지만.

나는 생각이 이해하기 쉽지 않다 말해 객체의 공정 차이가 매우입니다 간단한 :
1. 객체 지향 프로그래밍은 복잡한 엔지니어링 프로젝트의 파생
2. 극단적 인 점은, 객체 지향 프로그래밍은 프로그래밍 최적화하는 과정입니다
것으로, 이전에 나오지 않은 객체 지향 프로그래밍 이전을 프로젝트 금액은 아직 작을 때이 개발, C 언어 일반 사람들이 이해할 수있는 다음 인간의 뇌를 한 후, 기계 언어로 자신의 프로그램 원숭이는 문제를 해결할 수 있고, 나중에 용이하게하기 위해 어셈블리 언어로 에스컬레이션 이해 치료의 라인의 코드 수천 라인 수만은 견딜 수에 대한 과학 기술의 인기와 함께 할 때 어떻게 읽을 수있는 코드 방법을 생각 할 수 프로젝트의 복잡성 증가, 수십억 행에 코드의 라인 수, 점차적으로 힘없는 사람, 확장 성이 짧은 시간에 개선 명확 프로젝트의 논리적 프레임 워크는 다음 태어 객체 지향 것을 알 수있다.

나는 사실, 이러한 경향은 첫 번째 순서 초 산업 혁명이 볼 수있는, 공학을 공부 할 때마다 인간의 사용을위한 우리의 원래 의도에 반하는 그것을 한 번 복잡한 것은, 우리가 태어난 있었기 때문에 게으른 ,
전 장인 손으로 수 상품을 만들고, 나중에 수동 기계를 교체 할 수 있습니다.
목적은 드라이브에 쉽게 차에 사람들을 위해, 우리는 엔진의 구조를 이해 할 필요가 없습니다.
집적 회로의 목적은 컴퓨터 전원, 성능 자료 및 회로 이론을 가지고 고려도 우리는 알 필요가있다.
오늘날, 목표는 달성하기 위해 인간의 인공 지능 해방하는 것입니다 인류 게으른 매우 환경을 , 우리는 신비 뒤에 수학을 이해하지 않습니다.

: 프로그래밍이 간단 좋은 프로그램
1. 직선 ( 가독성 )
미래는 (계속 사용할 수 있습니다 2. 견고 함 )
3. 쉬운 CRUD 기능 모듈 ( 확장 성 )
여러 프로젝트 4에 걸쳐 적용 할 수 있습니다. ( 재사용 )
5. 문제가 다른 사람의 실수하지 (에 의한 코스 변경 보수 )
6. 빠른 속도와 작업 (완료 해결 의 낮은 복잡도를 )
에 : 단 하나 명의 목적에 좀 더 절약 경험의 문제 후 이 바코드는 더

이 원인의 객체 지향 개발이다.

객체와 클래스

말이 있습니다 : 모든 객체가, 모든 것이 가끔 컴퓨터도 마저의 원칙을 참조하지 않는 생각 같다. 이것은 분명히 개인 및 일반 변증 법적 관계 것! !
그때 일반적인 클래스로 개별 개체를 교체 믿을 수 없어, 난 당신이 다시 마저 변증 법적 원리를 암송에 와서 :
개체는 클래스와 연결되어 있어야합니다 및 객체 클래스의 존재에 의해 존재 만 수, 객체의 클래스 (의 일부)입니다 모든 클래스는 (성격)의 목적은. 물건이 일반적으로 모든 것을 포함 것처럼. 모든 개체가 완전히 서로 접촉, 서로에 클래스, 클래스와 객체에 포함 할 수 없습니다 .

마저 잘 직접적인 관계를 모두 정교 위에 물론, 농담이 특정 프로젝트에, 클래스와 객체가 서로 물론,이 변형 될 수 확인, 또는 다른 잘못된되지만,
 즉, 손가락으로 사실상 클래스와 그것의 개체를 의미한다.
 밤나무의 경우 :
 I는 일반적인 기준으로 클래스 마우스와 마우스를 정의 할 때, 다음 마우스 근접 협회 레이블은 손가락으로 마우스 같다.
 내가 클래스 컴퓨터 액세서리를 정의 할 때, 액세서리이 시간을 의미 마우스는 손가락으로 액세서리 카테고리. 인
 프로그램에 서면, 우리가 객체를 생성, 당신의 인스턴스를 원하는

C++
class Mouse
{
    public:
    	int click;
    //公共的行为或属性
}
int main(){
	// 两种不同的创建对象方式
	Mouse mouseWithLenovo = Mouse(); //栈中分配内存
	Mouse *mouseWithLenovo = new Mouse();// 堆中分配内存
}

JAVA
// 创建类
public class Mouse{
	String click; 
}
public static void main(String[] args){
	// 实例化对象
	Mouse mouseWithLenovo = new Mouse();
}

상속

상속은 부모 클래스 인스턴스 필드 및 메소드와 서브 오브젝트 (예)도 충족 수요 방법 및 필드에 대한 새로운 기초 첨가해도 그래서, 서브 클래스에 상속의 특성 및 동작과 상위 클래스이다.
즉, 서브 클래스에서도 상위 클래스는 고유 한 특성에 따라 다시 작성할 수 있습니다, 부모 클래스의 메서드와 속성을 호출 할 수 있습니다.

추상 클래스입니다.

1. 추상 클래스는 인스턴스화 할 수없는 , 추상 클래스는 상속되어야합니다 . (명확하게 디자인 고려 사항)
2. 추상 클래스는 규칙 클래스의 특별한 경우는,이 클래스는 특정 정보 객체를 묘사하지 않습니다.
추상 클래스가 쓸 수 있습니다 3. 특정 방법을 , 당신은 또한 쓸 수 있습니다 추상적 인 방법 .
4. 추상 클래스가 사용됩니다 캡처 특성 일반적인 서브 클래스에 .

인터페이스

1. 인터페이스 객체를 인스턴스화하는 데 사용할 수 있습니다 .
2. 인터페이스 없는 생성자 .
3. 모든 인터페이스 방법이 있어야합니다 추상적 인 방법 . (이전 1.8)
 1.8 이후 비 추상적 인 방법도 될 수 있습니다 . (방법은 구현되지 않는다)
4. 인터페이스 하지 부재 변수를 포함하고, 최종 정적 변수 이외에.
인터페이스는 클래스 상속하지만 클래스가 달성 될 아니다 .
제 인터페이스를 지원하는 다중 상속 .

추상 클래스와 인터페이스의 차이 :

그림 삽입 설명 여기
그림 삽입 설명 여기

사용 시나리오

1. 추상 클래스 필요한 방법이 구현
다중 상속 인터페이스 2. 사용
추상 클래스 사용 3. 증가 시간의 기본 기능을
각각 구현 클래스를 수정할 필요를 증가 인터페이스 기능을 사용하는 경우 4. 그 구현 인터페이스

생성자 :

참조없이 건축 1에있어서

생성자 멤버 변수 값없이 형성되는 객체의 클래스 멤버 변수를 초기화하는데 사용된다.

2. 메소드 파라미터로 구성된

생성자보다 사용자 객체를 형성한다 (즉, 매개 변수 값 개체)

메소드 오버로딩

전제

도 1과 동일한 기능 또는 방법 이름을 갖는다.
2. 변수리스트 (파라미터의 수 및 유형을 포함)이 동일하지 않다.
3. 반환 값에 과부하가 걸리지 않도록 할 수있다 다르다.

실제로 과부하에 대한 매개 변수와 기준점에있어서의 반영으로서 생성자는 동일한 이름을 갖는다.
통상의 방법은 기준 파라미터없이 동일한 이름 방법 오버로딩을 반영있다.

꾸러미

추상적 인 개념입니다 포장, 블랙 박스를 형성 숨기기 구현 세부 사항에 의도하는 사용자
패키지를 구현 상속과 인터페이스를 통해 이루어진다
1. 인터페이스 구현하기 위해 추상적 인 방법을 알리기 위해 필요로하는 것은 , 추상 클래스 또는 부모 제휴 추상 클래스 구현하는
후임자가 모든 서브 클래스 방법, 그림의 세부 사항에 의해 구현 될 2.
사용자가 내부 원리를 이해할 수 있도록 3. 외국에만 인터페이스를 노출합니다.

게시 19 개 원래 기사 · 원 찬양 4 · 조회수 489

추천

출처blog.csdn.net/qq_35050438/article/details/104061311