요약을 읽고 나면 나중에 기억하기가 더 쉬울 것 같아서 책이 너무 장황하다고 늘 느꼈어요. 게으르게 온라인에서 다른 사람의 요약을 찾아보고 싶었지만 좋은 것을 찾을 수 없었어요. 가능한 한 최선을 다해 요약해야 했습니다.
객체 입문
객체 입문
목차:
1.1 추상화 프로세스
1.2 각각 객체에는 인터페이스가 있습니다.
1.3 모든 객체는 서비스를 제공합니다.
1.4 숨겨진 구체적 구현
1.5 구체적인 구현 재사용
1.6 상속
1.7 다형성이 있는 교환 가능한 객체
1.8 단일 루트 상속 구조
1.9 컨테이너
1.10 객체 생성 및 수명 문제
1.11 예외 처리 : 오류 처리
1.12 동시 프로그래밍
1.13 Java와 인터넷
1.14 요약
이 장을 읽고 나면 마침내 Java에 능숙해진 것 같습니다. 하지만 이 장에서는 개발 개요를 포함하여 OOP의 기본 개념만 소개합니다. 방법 개체의 중요성을 이해합니다.
1.1 추상화 과정
다른 언어의 단점을 통해 객체지향 언어의 장점을 설명합니다.
어셈블리 언어는 기본 기계를 약간 추상화한 것이고, 명령형 언어(예: C, BASIC)는 어셈블리 언어를 추상화한 것이며, 어셈블리 언어는 컴퓨터 하드웨어를 직접 제어하며, 명령형 언어는 컴퓨터 구조를 기반으로 문제를 해결합니다. OOP 언어는 문제의 구조를 기반으로 문제를 해결하며 특정 유형의 문제에 국한되지 않습니다.
1.2 각 객체에는 인터페이스가 있습니다
인터페이스: 특정 객체에 대해 할 수 있는 요청을 결정합니다. 객체: 이름을 입력하세요
텍스트 설명을 보면 철학적인 문제가 제기되었습니다. , 다음 예는 이해하기 쉽습니다.
Light lt = new Light(); //对象lt.on;//接口向对象发出请求
1.3 각 객체는 서비스를 제공합니다
이점: 1. 소프트웨어의 응집력을 향상시키는 데 도움이 됩니다. 2. 각 객체는 작업을 잘 완료할 수 있지만 그렇지 않습니다. 그 이상은 하려고 하지 마세요.
이해: 가사 표시, 재생, 일시정지, 배경 표시(서비스)를 갖춘 음악 플레이어를 디자인하세요. 이때, 하나의 객체만 제공하지 마세요(더 많은 일을 하려고 하지 않습니다). 3개의 객체를 제공하고, 3개의 서비스를 완성하고, 3개의 객체가 3개의 서비스를 제공하여 음악 플레이어를 완성합니다(Cohesion).
1.4 숨겨진 특정 구현
Github에서 프레임워크를 다운로드하세요. 프레임워크는 메서드 호출만 제공하면 되고 나머지는 숨겨집니다. 내 통화에 영향을 주지 않습니다 .
액세스 권한: 공개 > 보호됨(패키지 + 기본 클래스) > 패키지 액세스 권한(키워드가 없는 경우 기본값) > 비공개
1.5 재사용 특정 구현
재사용은 다음을 의미합니다. 클래스 내에서 상속 또는 구성을 사용합니다.
상속----관계입니다 리치는 과일입니다
조합----관계가 있습니다 뱃속에 잠잘 방법이 있습니다
1.6 상속
상위 클래스에서 하위 클래스를 파생합니다. 하위 클래스는 상위 클래스의 데이터 속성과 동작을 흡수하고 새로운 기능을 확장할 수 있습니다.
1.7 다형성이 있는 교환 가능한 객체
class Shape{ draw(); erase(); move(); getColor(); setColor(); }
void doSomething(Shape shape){ shape.erase();//...shape.draw(); } Circle circle = new Circle(); //父类为ShapeTriangle triangle = new Triangle(); //父类为ShapeLine line = new Triangle(); //父类为ShapedoSomething(circle); doSomething(triangle); doSomething(line);
对doSomething的调用会自动地正确处理,而不管对象的确切类型(可互换对象)。
doSomething(Shape shape)的执行是指你是Shape类或者父类为Shape,而不是你是Circle类就执行这样,你是Triangle 类就执行那样。理解了可以去看设计模式之策略模式。
这里还涉及到向上转型,如下图:
1.8 单根继承结构
1、所有类都继承自单一的基类
public class JianCheng extends Object { }
public class JianCheng { public static void main(String[] args) { JianCheng jiancheng= new JianCheng(); System.out.println(JianCheng instanceof Object); } }
Object 2의 기본 상속에 대한 기본 상속을 설명하고 모든 객체에 특정 기능
Object이 있는지 확인합니다. 예: clone( ), equals(Object obj), toString() 및 기타 메소드.
3. 가비지 수집이 쉬워집니다
객체는 자신의 (객체) 유형 정보를 가지고 있으므로 객체 유형을 결정할 수 없어 교착 상태가 발생하지 않습니다. 이는 시스템 수준 작업(예: 예외 처리)에 중요합니다.
1.9 컨테이너
List(시퀀스 저장에 사용됨), Map(연관 배열이라고도 함)과 같은 컨테이너(컬렉션)라고 불리는 다른 객체에 대한 참조를 보유합니다. ), 세트(각 객체 유형 중 하나만 보유) 및 큐, 트리, 스택 등과 같은 추가 구성 요소.
ArrayList와 LinkedList를 비교하면 전자는 배열 형태로
요소에 무작위로 액세스하는 데는 비용이 거의 들지 않지만 삽입 및 삭제 작업에는 비용이 많이 듭니다. 후자는 연결 목록 형태이므로 삽입 및 삭제 작업을쉽게 만듭니다. 1.10 객체 생성 및 수명
스택에 배치된 객체와 힙에 배치된 객체의 차이점 이해
스택과 릴리스 간의 할당이 우선 순위를 고려 , 유연성이 희생됩니다
개체의 정확한 수, 수명 및 유형을 알아야 하기 때문입니다. Heap - 메모리 풀에 객체를 동적으로 생성하며 객체의 수, 수명 주기 및 유형
Java는 new 키워드를 사용하여 객체를 생성하는 동적 메모리 할당 방법을 채택합니다. 컴파일러는 객체의 생존 시간을 결정하고 자동으로 "가비지 수집기 메커니즘을 사용할 수 있습니다. "파괴해라.
1.11 예외 처리: 오류 처리
Exception은 오류 지점에서 발생하고 특정 유형의 오류 예외 처리기에 의해 포착되는 객체입니다. --잡거나 던집니다. 예외 처리는 오류가 발생할 때 실행되는 또 다른 경로와 유사하며 프로그램의 일반적인 실행 경로와 평행합니다. Java 코드가 올바른 예외 처리 코드를 작성하지 않으면 컴파일 시간 오류 메시지가 표시됩니다. 예: IOException, ClassCastException(클래스 변환 예외), NullPointerException(널 포인터 예외) 등
1.12 동시 프로그래밍
동기식 멀티스레드 작업, 리소스 공유에는 숨겨진 위험이 있습니다. A는 원래 a=Love You를 사용하고 싶었지만 특정 스레드에서 a=hate you가 발생하여 A가 사용했기 때문에 A의 고백은 확실히 실패합니다.
1.14 요약
첫 번째 장은 모두 이론적 지식이며 많은 지식 포인트는 분명히 매우 쉽지만 긴 논의로 인해 실용적인 정보가 있지만 혼합되어 있습니다. 보풀이 너무 많아.
위 내용은 Java 프로그래밍 아이디어 및 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!