C#과 JAVA의 객체 지향 구문 차이점 비교
객체 지향은 개발 아이디어 중 가장 중요하게 기억해야 할 점은 모든 것이 객체라는 것입니다. 프로그램을 더 잘 이해하고 작성하기 위해 실제 생활에서 사물을 묘사하는 방법과 아이디어가 통합되어 객체 지향적 사고가 됩니다. 삶의 사물을 프로그램으로 통합하려면 설명이 필요합니다. 설명은 특성과 동작이라는 두 가지 측면으로 나누어집니다. 각 개체 범주의 특성과 동작은 각 유형의 사물을 더 잘 설명하는 방법에 큰 차이가 있습니다. , 그렇다면 프로그래밍 세계에서 추출한 클래스 개념은 삶의 유형 개념과 동일합니다. 그렇다면 인생의 사물을 여러 측면에 따라 분류하면 여러 가지 범주로 분류될 수 있습니다. 프로그래밍의 모든 클래스도 모두가 합리적이라고 말하는 것입니다.
클래스의 구성:
Java의 클래스에는 속성과 메소드가 포함됩니다. 속성은 클래스 내의 변수로 정적 변수, 인스턴스 변수(전역 변수), 지역 변수(메서드에 존재하며 선언 주기는 메서드 호출 단계로 제한됨)로 나눌 수 있습니다.
C#의 클래스에는 다음이 포함됩니다. 필드, 속성 및 메소드. 필드는 Java의 속성에 해당합니다. C#의 속성 개체와 Java의 get 및 set 접근자는 필드의 캡슐화이며 둘 다 동작을 설명합니다.
클래스 멤버 호출:
인스턴스 멤버는 객체에 의해 호출됩니다. 정적 멤버는 클래스에 의해 호출됩니다. 하지만 자바에서는 정적 멤버도 인스턴스에 의해 호출될 수 있는데, 이는 수업에 참여하는 모든 학생이 수업료를 마음대로 통제할 수 있다는 것을 의미하며 이는 매우 나쁜 문제입니다. C#은 이와 관련하여 정적 멤버를 클래스에서만 호출할 수 있도록 엄격히 제한됩니다.
세 가지 주요 기능 - 캡슐화
캡슐화: 내부 구현 세부 정보를 숨기고 데이터 보안 보호 및 코드 재사용 효과를 달성하는 수단입니다.
캡슐은 어디에나 있으며 단순해 보이지만 무한히 확장 가능합니다. 캡슐화에 대한 명시적인 키워드는 없습니다. 아이디어이자 방법이기 때문에 Java와 C# 사이에는 문법적 차이가 없습니다. 캡슐화 효과를 얻기 위해 액세스 수정자를 사용할 때 두 언어의 액세스 수정자가 다릅니다.
Java:
private: 비공개, 내부에서만 액세스 가능
Dufault: 기본값, 동일한 패키지에서 내부적으로 액세스 가능.
보호됨: 동일한 패키지 또는 다른 패키지의 하위 클래스에서 보호되고 액세스 가능합니다.
공개: 공개, 어디에서나 접근 가능.
특징: 명확한 크기 소유권 관계가 있습니다: private < default < protected < public
C#(어셈블리 개념 소개. 네임스페이스는 Java의 패키지와 유사하지만 논리적 그룹화는 다릅니다. Java에서 패키지는 물리적 그룹이고 어셈블리는 프로젝트와 유사합니다.):
private: 비공개, 내부에서만 액세스 가능합니다.
intenal: 내부, 동일한 어셈블리 내에서 액세스 가능, 기본값과 동일.
Protected: protected, 하위 클래스에서 액세스할 수 있으며 이는 Java의 protected와 다릅니다. 여기서 범위는 더 작고 동일한 어셈블리의 하위 클래스가 아닌 경우에는 액세스할 수 없습니다.
보호된 내부: 내부 및 보호된 액세스 범위의 결합입니다.
공개: 공개, 어디에서나 접근 가능.
특징: 명확한 크기 소유권 관계가 없으며 내부 및 보호의 액세스 범위 크기가 불분명합니다.
세 가지 주요 특징 - 상속
상속: 한 클래스가 다른 클래스의 속성과 메서드를 갖도록 하는 것이 목적입니다.
Java: 상속 사용을 나타내기 위해 확장 사용
재작성 요구 사항: a. 메서드 이름, 반환 값 유형 및 매개 변수는 동일해야 합니다. b. 부모 클래스 메서드의 액세스 한정자;
Access 부모 클래스 멤버: super 키워드를 사용하고, super(매개변수)를 사용하여 생성자 메서드에서 호출할 부모 클래스의 생성자 메서드를 지정할 수 있습니다.
C#에서: use: 상속 사용을 나타냅니다.
재작성 요구 사항: a. 메서드 이름, 반환 값 유형, 매개 변수 및 액세스 한정자는 동일합니다. b. 하위 클래스 메서드는 override
에 의해 수정됩니다. 상위 클래스에 성공적으로 액세스합니다. 기본 키워드를 사용하고 생성자 메서드 뒤에 기본(매개변수)을 사용하여 상위 클래스 생성자 메서드를 호출하도록 지정합니다. 기본은 정적 환경에서 사용할 수 없습니다. 상위 클래스의 정적 멤버를 호출할 수 없습니다.
취재 : 새로운 키워드를 사용하세요. C#의 override 내용을 소개합니다. 부모 클래스의 비가상 메서드, 즉 재정의할 수 없는 메서드의 경우 override를 사용하면 부모 클래스의 메서드를 재정의할 수 있습니다. 덮어쓰기에 대한 나의 견해는 재정의하기 위해 메서드를 가상으로 수정해야 한다는 제한으로 인해 발생할 수 있는 문제를 보완하는 것입니다. 그러나 사용할 수 없다면 덮어쓰기는 별 의미가 없습니다. , 또는 덮어쓰기의 실제 역할과 효과를 실제로 인식하지 못했습니다. 사용하는 경우 전문가가 의견을 제시하고 의심을 해소할 수 있습니다.
재작성이 성공했는지 판단하는 기준: 상위 클래스의 참조를 사용하여 하위 클래스의 객체를 가리킵니다. 메서드가 상위 클래스 메서드를 호출하면 하위 클래스 메서드가 호출되면 재작성이 실패합니다. 다시 쓰기에 성공했습니다.
3가지 주요 기능 - 다형성
다형성(Polymorphism): 동일한 행위가 여러 개 존재하는 형태. 그 표현에는 오버로딩과 재작성이 포함됩니다.
오버로딩 요구사항: a. 동일한 클래스에서 b. 매개변수가 동일합니다(매개변수 수, 유형, 순서).
호출 시 전달된 매개변수에 따라 호출할 메서드를 결정합니다.
추상 클래스 및 인터페이스
추상 클래스: 추상으로 수정된 클래스를 추상 클래스라고 합니다.
출처: 내 생각에는 추상 수업의 출처는 깊은 이해를 돕기 위해 신중하게 숙고해 볼 가치가 있다고 생각합니다. 실생활에는 이런 문제가 많이 있습니다. 즉, 이런 종류의 일이 이 작업(방법)을 수행한다는 것을 알고 있지만 어떻게 해야 하는지는 모릅니다. 각 동물이 어떻게 움직이는지 모릅니다. 이때 이 Animal 클래스를 정의할 때 이동 메소드가 필요합니다. 메소드 헤더(무엇을 할지 설명)만 있고 메소드 본문(수행 방법을 설명)은 없습니다. 따라서 이 메소드는 매우 특별하므로 표시합니다. 추상 방법으로 사용하려면 추상 수정을 사용하세요.
그러면 Animal 클래스에 추상 메서드가 있는데, Animal 클래스를 인스턴스화하면 move 메서드를 호출할 때 어떤 문제가 발생할까요? 수행 방법을 설명하지 않기 때문에 알 수 없습니다. 따라서 예를 들어 이러한 알 수 없는 상황을 피하기 위해 Animal 클래스를 추상 클래스로 정의합니다. 주목할만한 특징은 인스턴스화할 수 없다는 것입니다. 인스턴스화할 수 없는 클래스의 경우 비정적 멤버를 호출할 수 없습니다. 그렇다면 이러한 클래스가 존재한다는 의미는 무엇일까요?
그래서 요약: 추상 클래스 존재의 의미는 상속된다는 것입니다. 추상 메서드에는 추상 클래스가 존재하지만 생성자는 있지만 인스턴스화할 수는 없습니다. 문법적으로 Java와 C#은 이 점에서 동일하므로 자세한 내용은 다루지 않겠습니다.
인터페이스: 모든 구현 클래스가 이러한 규칙 및 사양을 충족하도록 공식화된 일련의 규칙 및 사양은 실제 응용 프로그램의 유연성을 크게 높일 수 있습니다. 인터페이스 지향 프로그래밍에 대한 나의 이해는 그다지 깊지 않으며 한두 문장으로 명확하게 설명할 수도 없습니다. 뒤에는 자신의 경험을 올려서 배울 수 있는 전문가들이 있다.
차이점: C#에서는 구현 클래스가 인터페이스의 모든 메서드를 구현하지 않는 경우, 예를 들어 자신을 추상 클래스로 정의하고 구현되지 않은 메서드를 다시 복사하여 추상 메서드로 정의할 수 있습니다.
요약
저는 오랫동안 Java 개발을 해왔습니다. 교육용으로만 C#을 배웠는데 비슷한 점이 있어서 빨리 배울 수 있습니다. 여기서는 구문에만 중점을 두고 프로토콜 작업을 하고 하위 계층에서 작업하는 큰 사람들을 무시합니다.
위 내용은 C#과 JAVA의 객체 지향 구문 차이점 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

Java는 초보자와 숙련된 개발자 모두가 배울 수 있는 인기 있는 프로그래밍 언어입니다. 이 튜토리얼은 기본 개념부터 시작하여 고급 주제를 통해 진행됩니다. Java Development Kit를 설치한 후 간단한 "Hello, World!" 프로그램을 작성하여 프로그래밍을 연습할 수 있습니다. 코드를 이해한 후 명령 프롬프트를 사용하여 프로그램을 컴파일하고 실행하면 "Hello, World!"가 콘솔에 출력됩니다. Java를 배우면 프로그래밍 여정이 시작되고, 숙달이 깊어짐에 따라 더 복잡한 애플리케이션을 만들 수 있습니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4
