Heim  >  Artikel  >  Java  >  JAVA-Tutorial |. Kapitel 1 Grundkonzepte

JAVA-Tutorial |. Kapitel 1 Grundkonzepte

黄舟
黄舟Original
2017-02-25 09:41:281321Durchsuche

JAVA Kapitel 1 Grundkonzepte

Um JAVA zu lernen, müssen Sie zunächst wissen, was JAVA ist, was JAVA kann und welche Konzepte und Funktionen JAVA hat. Beginnen wir zunächst mit Was JAVA ist. Beginnen wir damit, alle in die Tiefe zu führen:

In den ersten beiden Artikeln haben wir einige Konzepte und Funktionen von JAVA erwähnt. In diesem Artikel werden wir die verbleibenden Grundkonzepte nachholen Natürlich werde ich die konzeptionellen Dinge in jedem Artikel dem Rhythmus folgen und nicht zu viele Konzepte auf einmal vorstellen.

  • OOP: Objektorientierte Programmierung, objektorientierte Programmierung

  • JAVA drei Hauptfunktionen

  • JAVA Andere Grundkonzepte


1. OOP-Gedanken

Lassen Sie uns zunächst einen Blick auf die Geschichte werfen. Viele der ursprünglichen Ideen von OOP stammen aus der Simula-Sprache und wurden während des Verbesserungs- und Standardisierungsprozesses der Smalltalk-Sprache weiter ausgebaut und neu kommentiert. Man kann sagen, dass sich OO-Denken und OOPL nahezu gleichzeitig entwickeln und gegenseitig fördern. Anders als das tatsächliche Computermodell, das der Maschine nahe kommt und durch funktionale Programmierung und Logikprogrammierung repräsentiert wird, führt OOP kaum präzise mathematische Beschreibungen ein, sondern tendiert dazu, ein Objektmodell zu etablieren, das die Beziehung zwischen Entitäten in einem Anwendungsfeld annähernd widerspiegeln kann ist ein Rechenmodell, das einer philosophischen Sichtweise näher kommt, mit der Menschen Dinge erkennen. Dies führt zu einem natürlichen Thema: Was genau ist OOP? [D&T 1988][B.S 1991] . In OOP dienen Objekte als Berechnungssubjekte und verfügen über eigene Namen, Status und Schnittstellen zum Empfang externer Nachrichten. Im Objektmodell bilden das Erzeugen neuer Objekte, das Zerstören alter Objekte, das Senden von Nachrichten und das Reagieren auf Nachrichten die Grundlage des OOP-Rechenmodells.
Es gibt zwei grundlegende Möglichkeiten, Objekte zu generieren:
Eine besteht darin, neue Objekte basierend auf Prototypobjekten zu generieren. Eine besteht darin, neue Objekte basierend auf Klassen zu generieren. Das Konzept des Prototyps wurde in der kognitiven Psychologie verwendet, um die inkrementelle Natur des Konzeptlernens zu erklären. Das Prototypmodell selbst versucht, verschiedene neue Objekte zu generieren, indem es ein repräsentatives Objekt als Grundlage bereitstellt, und dies erzeugt weiterhin Objekte die für praktische Anwendungen relevanter sind. Die Prototyp-Delegation ist auch eine Objektabstraktion in OOP und einer der Code-Sharing-Mechanismen. Eine Klasse stellt eine allgemeine Beschreibung eines oder mehrerer Objekte bereit. Aus formaler Sicht sind Klassen mit Typen verknüpft, sodass eine Klasse einer Sammlung von von der Klasse abgeleiteten Instanzen entspricht. Eine solche Sichtweise führt auch zu einigen Widersprüchen. Der typische Grund ist, dass es unter dem Vererbungssystem schwierig sein kann, die Verhaltenskompatibilität zwischen den Objekten der Teilmenge (Unterklasse) und den Objekten der übergeordneten Menge (Elternklasse) zu erreichen in OOP zitiert, dass Subtyp nicht gleich Subklasse ist [Budd 2002]. Im Kontext einer Weltanschauung, in der alles ein Objekt ist, wurde auf Basis des Klassenmodells ein neues Objektmodell mit Metaklassen geboren. Das heißt, die Klasse selbst ist auch ein Objekt anderer Klassen. Die oben genannten drei grundlegend unterschiedlichen Standpunkte definieren jeweils drei Objektmodelle basierend auf Klassen (klassenbasiert), prototypbasiert (prototypbasiert) und metaklassenbasiert (metaklassenbasiert). Und diese drei Objektmodelle haben zu vielen verschiedenen Programmiersprachen geführt (wenn wir den Unterschied zwischen statisch und dynamisch für den Moment außer Acht lassen). Ja, C++ und Java, mit denen wir oft in Kontakt kommen, verwenden klassenbasierte Objektmodelle, aber darüber hinaus gibt es viele OOPLs, mit denen wir keinen Kontakt haben und die völlig unterschiedliche Objektmodelle verwenden Konnotation von OOP.
Was ist die Grundidee von oop?
Trennen Sie die Implementierung und die Schnittstelle der Komponente und machen Sie die Komponente polymorph. Es gibt jedoch grundlegende Unterschiede zwischen den beiden. oop betont die Syntax von Sprachelementen bei der Programmkonstruktion. Sie müssen erben, Klassen verwenden, Objekte verwenden und Objekte Nachrichten weitergeben. GP ist es egal, ob Sie erben oder nicht. Es beginnt mit der Analyse der Klassifizierung der Produkte, ihrer Typen und ihres Verhaltens. Was bedeutet es also, dass zwei Dinge gleich sind? Wie definiere ich die Gleichheitsoperation richtig? Wenn Sie es genauer analysieren, werden Sie feststellen, dass das allgemeine Konzept der „Gleichheit“ bedeutet, dass die beiden Objektteile oder zumindest die Grundteile gleich sind Gleichstellungsoperation. Lassen Sie uns über die Art des Objekts sprechen. Angenommen, es gibt eine sequentielle Sequenz und eine Reihe von Operationen für die sequentielle Sequenz. Was ist also die Semantik dieser Operationen? Welche Art von sequenzieller Reihenfolge sollten wir dem Benutzer aus Sicht des Komplexitätskompromisses zur Verfügung stellen? Welche Operationen gibt es in dieser Sequenz? Welche Art von Bestellung benötigen wir? Erst wenn die konzeptionelle Klassifizierung dieser Komponenten klar ist, können wir uns mit der Frage der Implementierung befassen: Vorlagen, Vererbung oder Makros verwenden? Welche Sprachen und Technologien werden verwendet? Der grundlegende Zweck von GP besteht darin, abstrakte Softwarekomponenten und ihr Verhalten mithilfe von Standardtaxonomien zu klassifizieren. Der Ausgangspunkt besteht darin, echte, effiziente und sprachunabhängige Algorithmen und Datenstrukturen zu erstellen. Der ultimative Träger ist natürlich die Sprache, und ohne Sprache ist Programmieren nicht möglich. stl verwendet c++, Sie können es auch mit ada implementieren oder in anderen Sprachen implementieren. Die Ergebnisse sind unterschiedlich, aber die grundlegenden Dinge sind gleich. Binäre Suche und Sortierung werden überall verwendet, und genau das tun die Leute. Die Semantik von Containern variiert geringfügig von Sprache zu Sprache. Der grundlegende Unterschied liegt jedoch eindeutig in der Semantik, von der GP abhängt, und in der semantischen Zerlegung. Beispielsweise entscheiden wir, dass wir einen Komponentenaustausch benötigen, und finden dann heraus, wie diese Komponente in einer anderen Sprache funktionieren wird. Offensichtlich liegt der Fokus auf Semantik und semantischer Klassifikation. Was oop betont (ich denke, es ist überbetont), ist die klare Definition der hierarchischen Beziehung zwischen Klassen. oop erklärt Ihnen, wie Sie hierarchische Beziehungen aufbauen, verrät Ihnen jedoch nicht das Wesen dieser Beziehungen.
(Dieser Absatz ist nicht leicht zu verstehen. Für einige Begriffe gibt es möglicherweise erst nach einiger Zeit entsprechende chinesische Übersetzungen - Übersetzer)
Die objektorientierte Programmiermethode OOP wurde in den 1990er Jahren entwickelt und erfreut sich großer Beliebtheit Methode zur Softwareprogrammierung. Es betont die „Abstraktion“, „Kapselung“, „Vererbung“ und „Polymorphismus“ von Objekten. Wir sprechen von Programmierung als bestehend aus „Datenstruktur“ + „Algorithmus“. Aus Makroperspektive sind Objekte unter OOP programmzentrierte und programmorientierte Objekte.

Drei Hauptmerkmale von JAVA (Bild)

Das obige ist das Konzept und die Vergleichstabelle der drei Hauptfunktionen von , lass es uns analysieren:

Die Syntax von Java ist relativ einfacher als die von C++ ist das Java Es ermöglicht die Ausführung der Software auf einem sehr kleinen Computer. Die Größe der grundlegenden Erklärungs- und Klassenbibliotheksunterstützung beträgt etwa 40 KB. Das Hinzufügen der grundlegenden Standardbibliothek und Thread-Unterstützung erfordert eine Erhöhung des Speichers um 125 KB.

OO: Objektorientiertes Design ist das Fokus Eine Programmiertechnologie, die sich auf Objekte und deren Schnittstellen konzentriert.

1. Zusammenfassung:
Abstraktion ist der Prozess, bei dem die Aspekte eines Themas ignoriert werden, die für das aktuelle Ziel irrelevant sind, um den Aspekten, die für das aktuelle Ziel relevant sind, mehr Aufmerksamkeit zu schenken.

Abstraktion hat nicht die Absicht, das gesamte Problem zu verstehen, sondern wählt nur einen Teil davon aus und lässt einige Details vorerst weg.

Abstraktion umfasst zwei Aspekte, einen ist die Prozessabstraktion und der andere ist die Datenabstraktion.

2. Vererbung:

Vererbung ist ein hierarchisches Modell, das Klassen verbindet und die Wiederverwendung von Klassen ermöglicht und fördert. Es bietet eine Möglichkeit, Gemeinsamkeiten klar auszudrücken.

Eine neue Klasse eines Objekts kann von einer vorhandenen Klasse abgeleitet werden, ein Prozess, der als Klassenvererbung bezeichnet wird.

Die neue Klasse erbt die Eigenschaften der ursprünglichen Klasse. Die neue Klasse wird als abgeleitete Klasse (Unterklasse) der ursprünglichen Klasse bezeichnet, und die ursprüngliche Klasse ist es wird als Basis der neuen Klasse (Elternklasse) bezeichnet.

Eine abgeleitete Klasse kann Methoden und Instanzvariablen von ihrer Basisklasse erben, und die Klasse kann Methoden ändern oder neue hinzufügen, um sie für spezielle Anforderungen besser geeignet zu machen.

3. Verpackung:

Die Kapselung umgibt den Prozess und die Daten, und auf die Daten kann nur über die definierte Schnittstelle zugegriffen werden.

Objektorientiertes Rechnen beginnt mit dem grundlegenden Konzept, dass die reale Welt als eine Reihe vollständig autonomer, gekapselter Objekte dargestellt werden kann Greifen Sie über eine geschützte Schnittstelle auf andere Objekte zu.

4. Polymorphismus:

Polymorphismus bezieht sich auf Sexualität Ermöglichen, dass Objekte verschiedener Klassen auf dieselbe Nachricht antworten.

Polymorphismus umfasst parametrisierten Polymorphismus und Einschlusspolymorphismus.

Polymorphe Sprache bietet die Vorteile von Flexibilität, Abstraktion, Verhaltensfreigabe und Codefreigabe und kann das Problem gleichnamiger Anwendungsfunktionen gut lösen.

Zusammenfassung: Bei der dynamischen Bindung gibt es eine sehr wichtige Funktion: Das Programm kann erweitert werden, ohne den vorhandenen Code zu ändern. Denken Sie also daran, dass Polymorphismus die Grundlage des Offen-Geschlossen-Prinzips ist.

3. Weitere Grundkonzepte von JAVA

  • Der Unterschied zwischen String und StringBuffer

Die JAVA-Plattform bietet zwei Klassen: String und StringBuffer, die Zeichenfolgen speichern und betreiben können. das heißt, Zeichendaten, die mehrere Zeichen enthalten. Die String-Klasse stellt numerisch unveränderliche Strings bereit. Die von dieser StringBuffer-Klasse bereitgestellte Zeichenfolge wird geändert. Sie können StringBuffer verwenden, wenn Sie wissen, dass sich die Zeichendaten ändern werden. Normalerweise verwenden Sie StringBuffers, um Zeichendaten dynamisch zu erstellen.

  • Was ist der Unterschied zwischen int und Integer

Java bietet zwei verschiedene Typen: Referenztypen und Primitive Typen (oder integrierte Typen). Int ist der primitive Datentyp von Java und Integer ist die von Java für int bereitgestellte Kapselungsklasse. Java bietet Wrapper-Klassen für jeden primitiven Typ.
Primitivtyp -->> Eingekapselte Klasse -->> Boolean -->> Zeichen
kurz -->> Short
int -->> Long -->> Long
double -->> Doppelte


Referenztypen und primitive Typen verhalten sich völlig unterschiedlich und haben eine unterschiedliche Semantik. Referenztypen und Grundtypen haben unterschiedliche Eigenschaften und Verwendungsmöglichkeiten. Dazu gehören: Größen- und Geschwindigkeitsprobleme, in welcher Art von Datenstruktur dieser Typ gespeichert wird, was angegeben wird, wenn Referenztypen und Grundtypen als Instanzdaten einer Klasse verwendet werden. Standardwert. Der Standardwert für Objektreferenz-Instanzvariablen ist null, während der Standardwert für Instanzvariablen primitiven Typs von ihrem Typ abhängt.


Ist String der grundlegendste Datentyp?
  • Grundlegende Datentypen umfassen Byte, Int, Char, Long, Float, Double, Boolean und Short.

Die Klasse java.lang.String ist vom endgültigen Typ, daher kann diese Klasse nicht geerbt oder geändert werden. Um die Effizienz zu verbessern und Platz zu sparen, sollten wir die StringBuffer-Klasse


final class verwenden : um andere zu verhindern. Leiten Sie eine neue Klasse von Ihrer Klasse ab. Diese Klasse ist nicht erweiterbar.
  • Jede Klasse in Java geht von der Object-Klasse aus.

  • Abstrakte Klasse: Eine Klasse, die eine oder mehrere abstrakte Methoden angibt, muss selbst als abstrakt definiert werden. Beispiel: öffentliche abstrakte Zeichenfolge getDescripition

  • Überladung: Wenn mehrere Methoden denselben Namen haben, aber unterschiedliche Parameter enthalten, muss der Compiler auswählen, welche Methode aufgerufen werden soll

    .
  • Vererbung: Das Erhalten einer neuen Klasse durch Erweitern einer Klasse wird als Vererbung bezeichnet, und alle Klassen werden durch die Objektstamm-Superklasse erweitert Die Superklasse wird im Folgenden vorgestellt.

  • 3 Hauptmerkmale von JAVA-Objekten

  • 1.Verhalten- - -Beschreiben Sie, was dieses Objekt tun kann.

2.tate---Die Reflexion des Objekts, wenn eine Methode auf das Objekt angewendet wird.

3.Zähnigkeit – ein Unterscheidungsmerkmal zu anderen ähnlichen Verhaltensobjekten.

Jedes Objekt hat eine einzigartige Identität und diese drei beeinflussen sich gegenseitig.

Beziehung zwischen JAVA-Klassen:
  • verwenden Sie -a : Abhängigkeitsbeziehung

has-a: Aggregationsbeziehung

is-a: Vererbungsbeziehung – Beispiel: Klasse A erbt Klasse B. Zu diesem Zeitpunkt verfügt Klasse A nicht nur über die Methoden von Klasse B, sondern auch über ihre eigenen Methoden (Persönlichkeit existiert in Gemeinsamkeit).


  • Konstruieren Sie ein Objekt mit einem Konstruktor: Der Vorschlag eines Konstruktors, ein Konstruktor ist eine spezielle Methode, Konstruktorobjekt und initialisieren Sie es.

Beispiel: Der Konstruktor der Data-Klasse heißt Data

New Data()-- -Konstruktion Ein neues Objekt, das mit der aktuellen Zeit initialisiert wird.

Data dujinyang=new Data()---Weisen Sie ein Objekt einer Variablen dujinyang zu, damit das Objekt mehrfach verwendet werden kann , es muss deklariert werden hier Die Variablen und Objektvariablen sind unterschiedlich.

.new Der zurückgegebene Wert ist eine Referenz.

Konstruktorfunktionen:


      1. Der Konstruktor kann 0, einen oder mehrere Parameter haben

      2. Der Konstruktor und die Klasse haben den gleichen Namen

      3. Eine Klasse kann mehrere Konstruktoren haben

      4. Der Konstruktor hat keinen Rückgabewert

      5. Der Konstruktor wird immer mit dem neuen Operator verwendet

  • Interface ) beschreibt, was eine Klasse soll Eine Klasse kann eine oder mehrere Schnittstellen implementieren.

  • Eine Schnittstelle ist keine Klasse, sondern ein Schnittstellenpaar. Eine Reihe von Spezifikationen für die gewünschte Klasse.

Wenn die Implementierung einer Schnittstelle zwei Schritte erfordert:

1) Deklarieren der Spezifikation, die die Klasse benötigt Schnittstelle zu implementieren.

2) Stellen Sie Definitionen aller Methoden in der Schnittstelle bereit.

---- Um eine Klasse zum Implementieren einer Schnittstelle zu deklarieren, müssen Sie das Schlüsselwort „implements“ verwenden. Eine Schnittstelle ist keine Klasse und Sie können eine Schnittstelle nicht mit new instanziieren.

  • Was ist eine Superklasse (Basisklasse)? Was ist eine abgeleitete Klasse?

Eine Klasse hat nur eine Superklasse (Basisklasse), aber eine Klasse kann mehrere Schnittstellen implementieren. (Denken Sie daran: eine wichtige Schnittstelle in Java: Klonbar.)

Was ist eine Basisklasse? Tatsächlich handelt es sich bei der Vererbung um zwei Klassen, eine Unterklasse und eine übergeordnete Klasse. Die Basisklasse ist gleich der übergeordneten Klasse und die abgeleitete Klasse ist gleich der Unterklasse.


Basisklasse, Superklasse und Elternklasse haben alle die gleiche Bedeutung, nur unterschiedliche Ausdrücke.


Zum Beispiel:


Klasse BaBa{}


Klasse A erweitert BaBa{}


Das kann sein besagte BaBa ist die Basisklasse von A, BaBa ist die Superklasse von A und BaBa ist die übergeordnete Klasse von A. A ist wiederum die Unterklasse von BaBa oder eine abgeleitete Klasse.


  • Innere Klasse: Eine innere Klasse wird innerhalb einer anderen Klasse definiert.

Der Grund ist:

1) Ein Objekt einer inneren Klasse kann auf das Objekt zugreifen, das Es wurde eine Implementierung erstellt, einschließlich privater Daten.

2) Innere Klassen können vor anderen Klassen im selben Paket ausgeblendet werden.

3) Anonyme innere Klassen können problemlos Rückrufe definieren.

4) Die Verwendung interner Klassen macht es sehr bequem, ereignisgesteuerte Programme zu schreiben.

Das obige ist das JAVA-Einstiegstutorial | Kapitel 1 Grundkonzepte. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn