Pour apprendre JAVA, vous devez d'abord savoir ce qu'est JAVA, ce que JAVA peut faire et quels sont les concepts et fonctionnalités de JAVA. Tout d'abord, commençons par. ce qu'est JAVA. Commençons par emmener tout le monde dans la fosse :
Dans les deux premiers articles, nous avons évoqué quelques concepts et fonctionnalités de JAVA. Dans cet article, nous rattraperons les concepts de base restants. Bien sûr, les éléments conceptuels de chaque article suivront le rythme et chaque article n'introduira pas trop de concepts à la fois.
POO : Programmation Orientée Objet, programmation orientée objet
JAVA trois fonctionnalités majeures
JAVA Autres concepts de base
Tout d'abord, passons en revue l'historique. La plupart des idées originales de la POO proviennent du langage Simula et ont été développées et réannotées avec les idées précédentes au cours du processus d'amélioration et de standardisation du langage Smalltalk. On peut dire que la pensée OO et OOPL se développent presque simultanément et se favorisent mutuellement. Différent du modèle informatique actuel proche de la machine représenté par la programmation fonctionnelle et la programmation logique, la POO introduit à peine des descriptions mathématiques précises, mais tend à établir son essence. est un modèle informatique plus proche d’une vision philosophique utilisée par les humains pour reconnaître les choses. Cela nous amène à un sujet naturel : qu’est-ce que la POO exactement ? [D&T 1988][BS 1991] . En POO, les objets servent de sujets de calcul et ont leurs propres noms, statuts et interfaces pour recevoir des messages externes. Dans le modèle objet, la génération de nouveaux objets, la destruction d'anciens objets, l'envoi de messages et la réponse aux messages constituent la base du modèle informatique POO.
Il existe deux manières de base de générer des objets : La première consiste à générer de nouveaux objets basés sur des objets prototypes. La première consiste à générer de nouveaux objets basés sur des classes. Le concept de prototype a été utilisé en psychologie cognitive pour expliquer la nature incrémentale de l'apprentissage des concepts. Le modèle prototype lui-même tente de générer divers nouveaux objets en fournissant un objet représentatif comme base, et cela continue de produire des objets. qui sont plus pertinents pour les applications pratiques. La délégation de prototype est également une abstraction d'objet en POO et l'un des mécanismes de partage de code. Une classe fournit une description générale d'un ou plusieurs objets. D'un point de vue formel, les classes sont liées aux types, donc une classe équivaut à une collection d'instances dérivées de la classe. Une telle vision entraînera également certaines contradictions, dont la plus typique est que dans le système d'héritage, la compatibilité comportementale entre les objets de sous-ensemble (sous-classe) et les objets de l'ensemble parent (classe parent) peut être difficile à réaliser. cité en POO, ce sous-type n'est pas égal à la sous-classe [Budd 2002]. Dans le contexte d’une vision du monde dans laquelle tout est objet, un nouveau modèle objet avec métaclasses est né basé sur le modèle de classe. Autrement dit, la classe elle-même est également un objet d’autres classes. Les trois points de vue fondamentalement différents ci-dessus définissent chacun trois modèles d'objet basés sur la classe (basée sur la classe), sur le prototype (basé sur le prototype) et sur la métaclasse (basé sur la métaclasse). Et ces trois modèles objets ont donné naissance à de nombreux langages de programmation différents (si l’on met de côté pour le moment la différence entre statique et dynamique). Oui, le C et le Java avec lesquels nous sommes souvent en contact utilisent des modèles objet basés sur les classes, mais en plus, il existe de nombreuses OOPL avec lesquelles nous n'avons pas été en contact et qui utilisent des modèles objet complètement différents. Ils utilisent un autre point de vue. Interprétez la connotation de la POO.
Quelle est l'idée de base du oop ? Séparez l'implémentation et l'interface du composant et rendez le composant polymorphe. Il existe cependant des différences fondamentales entre les deux. La POO met l'accent sur la syntaxe des éléments du langage dans la construction du programme. Vous devez hériter, utiliser des classes, utiliser des objets et les objets transmettent des messages. GP ne se soucie pas de savoir si vous héritez ou non. Il commence par analyser la classification des produits, de quels types ils sont et comment ils se comportent. Autrement dit, que signifie que deux choses soient égales ? Comment définir correctement l’opération d’égalité ? Il ne s'agit pas seulement de l'opération d'égalité. Si vous l'analysez plus en profondeur, vous constaterez que le concept général d'« égalité » signifie que les deux parties de l'objet, ou du moins les parties de base, sont égales. Sur cette base, nous pouvons avoir un universel. opération d’égalité. Parlons du type d'objet. Supposons qu'il existe une séquence séquentielle et un ensemble d'opérations sur la séquence séquentielle. Alors quelle est la sémantique de ces opérations ? Du point de vue du compromis de complexité, quel type de séquence séquentielle devrions-nous fournir à l'utilisateur ? Quelles opérations existent sur cette séquence ? De quel type de commande avons-nous besoin ? Ce n’est qu’une fois que la classification conceptuelle de ces composants sera claire que nous pourrons aborder la question de la mise en œuvre : utiliser des modèles, l’héritage ou des macros ? Quels langages et technologies sont utilisés ? Le point fondamental de gp est de classer les composants logiciels abstraits et leurs comportements à l'aide de taxonomies standard. Le point de départ est de construire des algorithmes et des structures de données réels, efficaces et indépendants du langage. Bien entendu, le support ultime est le langage, et la programmation est impossible sans langage. stl utilise c, vous pouvez également utiliser ada pour l'implémenter, ou vous pouvez l'implémenter dans d'autres langages. Les résultats seront différents, mais les éléments de base sont les mêmes. Les recherches et le tri binaires sont utilisés partout, et c'est ce que font les gens. La sémantique des conteneurs varie légèrement d'une langue à l'autre. Mais la différence fondamentale réside clairement dans la sémantique dont dépend gp et dans la décomposition sémantique. Par exemple, nous décidons que nous avons besoin d'un échange de composants, puis déterminons comment ce composant fonctionnera dans une langue différente. L’accent est évidemment mis sur la sémantique et la classification sémantique. Ce que oop met l'accent (je pense que c'est trop), c'est de définir clairement la relation hiérarchique entre les classes. oop vous explique comment établir des relations hiérarchiques, mais ne vous explique pas l'essence de ces relations.
(Ce paragraphe n'est pas facile à comprendre. Certains termes peuvent ne pas avoir de traduction chinoise appropriée avant un certain temps - traducteur)
La méthode de programmation orientée objet POO a été développée dans les années 1990. Une méthode très populaire méthode de programmation logicielle. Il met l'accent sur « l'abstraction », « l'encapsulation », « l'héritage » et le « polymorphisme » des objets. Nous parlons de programmation comme étant constituée de « structures de données » et d’« algorithmes ». D'un point de vue macro, les objets sous POO sont des objets centrés sur la programmation et orientés programme.
Ce qui précède est le concept et le tableau comparatif des trois principales fonctionnalités de , analysons-le :
La syntaxe de Java est relativement plus simple que celle du C. Un autre aspect. est-ce Java Il permet au logiciel de fonctionner sur une très petite machine. La taille de l'explication de base et la prise en charge de la bibliothèque de classes sont d'environ 40 Ko. L'ajout de la bibliothèque standard de base et de la prise en charge des threads nécessite une augmentation de 125 Ko de mémoire.
OO : La conception orientée objet est focus Une technologie de programmation placée sur les objets et leurs interfaces.
1. Résumé :
L'abstraction est le processus consistant à ignorer les aspects d'un sujet qui ne sont pas pertinents pour l'objectif actuel afin d'accorder plus d'attention aux aspects qui sont pertinents pour l'objectif actuel.
L'abstraction n'a pas l'intention de comprendre l'ensemble du problème, mais n'en sélectionne qu'une partie et laisse de côté certains détails pour le moment.
L'abstraction comprend deux aspects, l'un est l'abstraction des processus et l'autre est l'abstraction des données.
2. Héritage :
L'héritage est un modèle hiérarchique qui relie les classes et permet et encourage la réutilisation des classes. Il fournit un moyen d'exprimer clairement les points communs.
Une nouvelle classe d'un objet peut être dérivée d'une classe existante, un processus appelé héritage de classe.
La nouvelle classe hérite des caractéristiques de la classe d'origine. La nouvelle classe est appelée une classe dérivée (sous-classe) de la classe d'origine, et la classe d'origine est. appelée la base de la nouvelle classe (classe parent).
Une classe dérivée peut hériter des méthodes et des variables d'instance de sa classe de base, et la classe peut modifier ou ajouter de nouvelles méthodes pour la rendre plus adaptée à des besoins particuliers.
3. Emballage :
L'encapsulation entoure le processus et les données, et les données ne sont accessibles que via l'interface définie.
L'informatique orientée objet commence par le concept fondamental selon lequel le monde réel peut être représenté comme une série d'objets encapsulés entièrement autonomes qui Accédez à d’autres objets via une interface protégée.
4. Polymorphisme :
Le polymorphisme La sexualité fait référence permettre à des objets de classes différentes de répondre au même message.
Le polymorphisme comprend le polymorphisme paramétré et le polymorphisme d'inclusion.
Le langage polymorphe présente les avantages de la flexibilité, de l'abstraction, du partage de comportement et du partage de code, et résout bien le problème des fonctions d'application portant le même nom.
Résumé : Il existe une fonctionnalité très importante dans la liaison dynamique : le programme peut être étendu sans modifier le code existant. Alors rappelez-vous, le polymorphisme est la base du principe ouvert-fermé.
La différence entre String et StringBuffer
La plateforme JAVA propose deux classes : String et StringBuffer, qui peuvent stocker et exploiter des chaînes, c'est-à-dire des données de caractères contenant plusieurs caractères. La classe String fournit des chaînes numériquement immuables. La chaîne fournie par cette classe StringBuffer est modifiée. Vous pouvez utiliser StringBuffer lorsque vous savez que les données de caractères vont changer. En règle générale, vous utilisez StringBuffers pour construire dynamiquement des données de caractères.
Quelle est la différence entre int et Integer
Java propose deux types différents : les types de référence et Types primitifs (ou types intégrés). Int est le type de données primitif de Java et Integer est la classe d'encapsulation fournie par Java pour int. Java fournit des classes wrapper pour chaque type primitif.
Type primitif -->> Classe d'encapsulation
booléen -->> Booléen
caractère
octet -->> -->> Court
int -->> Entier
long -->> Long
flotteur
double -->> Les types référence doubleet les types primitifs se comportent complètement différemment et ont une sémantique différente. Les types référence et les types primitifs ont des caractéristiques et des utilisations différentes, ils incluent : des problèmes de taille et de vitesse, dans quel type de structure de données ce type est stocké, ce qui est spécifié lorsque les types référence et les types primitifs sont utilisés comme données d'instance d'une classe Valeur par défaut. La valeur par défaut des variables d'instance de référence d'objet est nulle, tandis que la valeur par défaut des variables d'instance de type primitif dépend de leur type.
La chaîne est-elle le type de données le plus basique ?
Les types de données de base incluent byte, int, char, long, float, double, boolean et short.
La classe java.lang.String est de type final, cette classe ne peut donc pas être héritée ou modifiée. Afin d'améliorer l'efficacité et d'économiser de l'espace, nous devons utiliser la classe StringBuffer
classe finale : pour empêcher les autres de dériver une nouvelle classe de votre classe. Cette classe n'est pas extensible.
Chaque classe en Java s'étend de la classe Object.
Classe abstraite : Une classe qui spécifie une ou plusieurs méthodes abstraites doit elle-même être définie comme abstraite. Exemple : chaîne abstraite publique getDescripition
Surcharge : lorsque plusieurs méthodes ont le même nom mais contiennent des paramètres différents, le compilateur doit choisir la méthode à appeler. .
Héritage : L'obtention d'une nouvelle classe en étendant une classe est appelée héritage, et toutes les classes sont étendues par la super classe racine Objet Cependant, la racine la superclasse sera présentée ci-dessous.
3 caractéristiques principales des objets JAVA
1.ehavior- - -Décrire ce que cet objet peut faire.
2.tate---Le reflet de l'objet lorsqu'une méthode est appliquée à l'objet.
3.identité --- une marque distinctive par rapport à d'autres objets comportementaux similaires.
Chaque objet a une identité unique et ces trois-là s'influencent mutuellement.
Relation entre les classes JAVA :
utiliser -a : relation de dépendance
has-a : relation d'agrégation
est-un : relation d'héritage - Exemple : la classe A hérite de la classe B. À l'heure actuelle, la classe A a non seulement les méthodes de la classe B, mais a également ses propres méthodes (la personnalité existe en points communs).
Construire un objet à l'aide d'un constructeur : la proposition d'un constructeur, un constructeur est une méthode particulière, objet constructeur et initialisez-le.
Exemple : Le constructeur de la classe Data s'appelle Data
New Data()-- -Construction Un nouvel objet initialisé avec l'heure actuelle.
Data dujinyang=new Data()---Attribuer un objet à une variable dujinyang, afin que l'objet puisse être utilisé plusieurs fois , il doit être déclaré ici Les variables et les variables d'objet sont différentes
.new La valeur renvoyée est une référence.
Caractéristiques du constructeur :
Le constructeur peut avoir 0, un ou plusieurs paramètres
Le constructeur et la classe ont le même nom
Une classe peut avoir plusieurs constructeurs
Le constructeur n'a pas de valeur de retour
Le constructeur est toujours utilisé avec l'opérateur new
Interface ) décrit ce qu'une classe doit faire sans préciser comment le faire. Une classe peut implémenter une ou plusieurs interfaces
Une interface n'est pas une classe, mais une paire d'interfaces Un ensemble de spécifications. pour la classe requise.
Si l'implémentation d'une interface nécessite 2 étapes :
1) Déclarer la spécification dont la classe a besoin pour implémenter l'interface.
2) Fournissez des définitions de toutes les méthodes dans l'interface.
---- Pour déclarer une classe pour implémenter une interface, vous devez utiliser le mot-clé Implements. Une interface n'est pas une classe, et vous ne pouvez pas utiliser new pour instancier une interface.
Qu'est-ce qu'une super classe (classe de base) ? Qu'est-ce qu'une classe dérivée ?
Une classe n'a qu'une seule super classe (classe de base), mais une classe peut implémenter plusieurs interfaces. (Rappelez-vous : une interface importante en Java : Cloneable.)
Qu'est-ce qu'une classe de base ? En fait, il s'agit de la classe parent. Il existe deux classes en héritage, une sous-classe et une classe parent. La classe de base est égale à la classe parent et la classe dérivée est égale à la sous-classe.
La classe de base, la super classe et la classe parent ont toutes la même signification, juste des expressions différentes.
Par exemple :
classe BaBa{}
la classe A étend BaBa{}
Cela peut être ledit BaBa est la classe de base de A, BaBa est la super classe de A et BaBa est la classe parent de A à son tour, A est la sous-classe de BaBa, ou une classe dérivée ;
Classe interne : Une classe interne est définie à l'intérieur d'une autre classe.
La raison est la suivante :
1) Un objet d'une classe interne peut accéder à l'objet qui l'a créé Mise en œuvre, y compris les données privées.
2) Les classes internes peuvent être masquées des autres classes du même package.
3) Les classes internes anonymes peuvent facilement définir des rappels.
4) L'utilisation de classes internes rend très pratique l'écriture de programmes événementiels.
Ce qui précède est le didacticiel d'entrée JAVA | Chapitre 1 Concepts de base Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !