Java 객체지향 기본 및 고급 지식 요약
클래스 멤버에 대한 액세스 제어.
private: 자신의 클래스에서만 사용할 수 있습니다.
public: 어디서나 사용할 수 있습니다.
protected: package-private은 동일한 패키지 아래에서 사용할 수 있으며, 다른 패키지에서 상속받은 하위 클래스에서도 사용할 수 있습니다.
no-modifier: package-private은 동일한 패키지에서만 사용할 수 있습니다(동일한 패키지의 경우 protected와 동일합니다). 다른 패키지에서는 작동하지 않습니다.
Overriding 및 Overloading Overriding
Overriding: 함수 본문의 변경을 제외하고 하위 클래스와 상위 클래스 사이에 사용되며 다른 모든 것은 변경되지 않습니다. 그리고 하위 클래스 재정의의 액세스 컨트롤러는 상위 클래스보다 높을 수 없습니다.
오버로딩: 동일한 유형의 메서드 사이에 있습니다. 매개변수 목록은 변경되어야 하며 반환 유형은 변경되거나 변경되지 않을 수 있습니다.
다형성
은 대략
ParentClass obj = new ChindClass(); //A
ChildClass obj2 = new ChildClass( ); // ㄴ
ChildClass OBJ3 = New Parentclass (); // C 오류 예
이 설정이 있는 이유를 모두에게 알려주세요. A의 경우 ParentClass를 선언하면 ParentClass의 변수와 메서드를 위해 메모리에 별도의 공간을 여는 것과 같습니다. 새로 생성하면 ChildClass의 변수와 메서드 수가 다음과 같아야 하기 때문에 실제로 누군가가 ChildClass에 오는 것과 같습니다. ParentClass에 있는 숫자보다 크거나 같아서 전에 오픈했던 방들이 다 꽉 차있어서 호텔이 너무 만족스러워서 예약한 만큼 묵고 있어요. C의 경우 ChildClass의 변수와 메소드를 사용하여 객실을 예약했지만 실제 오는 인원은 ParentClass에서 온 것이며 그 수가 ChildParent의 인원보다 명백히 적습니다. 예약이 만족스럽지 않으면 호텔은 다음과 같습니다. 매우 화가 나서 오류를 보고할 것입니다.
재정의와 오버로딩은 다형성의 중요한 형태입니다.
Abstract 클래스 추상 클래스
abstract 클래스는 추상 함수를 포함하거나 포함하지 않을 수 있으며, 추상 함수는 abstract 키워드로 수정해야 합니다.
클래스에 추상 함수가 포함되어 있는 한 이 클래스는 abstract 키워드로 수정되어야 합니다. 하위 클래스에서도 마찬가지입니다.
인터페이스 인터페이스
인터페이스는 추상 클래스보다 더 극단적인 것입니다. 여기에 포함된 모든 메서드는 추상 메서드여야 하며 인스턴스 필드를 포함할 수 없습니다. int와 같은 모든 상수는 정적이며 최종적이어야 합니다.
implement 추상 메소드와 마찬가지로 모든 추상 메소드를 구현해야 합니다.
Java Advanced Knowledge
Generic Class
쉽고 아래 예를 보면 명확합니다. 예를 들어 arraylist 또는 hashmap은 모두 일반적입니다.
package Generic; //generic class public class GenericMethodTest< A,Z > { //generic variable public A a; public void setA( A a) { this.a = a; } //generic methods public A getA () { return this.a; } public void printArray ( Z[] inArray) { for ( Z temp : inArray) { System.out.println(temp); } } public static < B > void printArray_2 (B[] inArray) { for (B temp : inArray) { System.out.println(temp); } } }
package Implement; import Generic.GenericMethodTest; public class a{ public static void main (String[] args) { GenericMethodTest<Integer,String> gm = new GenericMethodTest<Integer,String>() ; gm.setA(10); String[] ss = {"aaa", "bbb", "ccc"}; Double [] bb = {1.0, 2.0, 3.0}; gm.printArray(ss); gm.printArray_2(ss); gm.printArray_2(bb); } }
직렬화
직렬화는 단순히 기존 인스턴스화된 개체를 바이트 배열로 변환하는 기술 또는 프로세스입니다. 다양한 혜택이 있으니 꼭 살펴보시기 바랍니다.
http://stackoverflow.com/questions/2232759/what-is-the-목적-of-serialization-in-java
간단한 직렬화, 다음 코드에 따라 학습할 수 있습니다.
참고: 직렬화하고 싶지 않은 일부 영역의 경우 transient 키워드를 사용하여 수정할 수 있습니다.
package Serialize; import java.io.*; public class Employee implements Serializable{ public String name; public String address; public transient int SSN; public int number; public void mailCheck (){ System.out.println("Mailing a check to "+ name + " " + address); } }
package Serialize; import java.io.*; public class SerializeDemo { public static void main (String[] args) { Employee e = new Employee(); e.name = "Reyan df"; e.address = "New York, ManhaThan"; e.SSN = 1234433224; e.number = 101; try { FileOutputStream fileOut = new FileOutputStream ("/Users/huazhe/Desktop/demo.ser"); ObjectOutputStream out = new ObjectOutputStream (fileOut); out.writeObject(e); out.close(); fileOut.close(); System.out.println("Serialization done..."); } catch (IOException i){ System.out.println(i); } } }
package Serialize; import java.io.*; public class DeserializaDemo { public static void main (String[] args) { Employee e = null; try { FileInputStream fileIn = new FileInputStream("/Users/huazhe/Desktop/demo.ser"); ObjectInputStream in = new ObjectInputStream (fileIn); e = (Employee) in.readObject(); in.close(); fileIn.close(); } catch (IOException i) { System.out.println(i); } catch (ClassNotFoundException c) { System.out.println(c); } System.out.println("Name: " + e.name); System.out.println("Address: " + e.address); System.out.println("SSN: " + e.SSN); System.out.println("Number: " + e.number); } }
위 내용은 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에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

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

Spring Boot는 강력하고 확장 가능하며 생산 가능한 Java 응용 프로그램의 생성을 단순화하여 Java 개발에 혁명을 일으킨다. Spring Ecosystem에 내재 된 "구성에 대한 협약"접근 방식은 수동 설정, Allo를 최소화합니다.
