Maison >développement back-end >Problème PHP >Quelle est la différence entre php et java orientés objet

Quelle est la différence entre php et java orientés objet

青灯夜游
青灯夜游original
2021-09-17 16:20:422107parcourir

Différences : 1. Le mot-clé class de PHP ne peut pas avoir de modificateurs autres que abstract et final alors que Java le peut. 2. Le nom de classe après le mot-clé new en php peut être une variable de type chaîne, mais pas en Java. 3. Lors de l'accès à l'objet parent, php utilise parent et java utilise super.

Quelle est la différence entre php et java orientés objet

L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP7.1&&java8, ordinateur DELL G3

Comparaison incomplète de PHP et Java orientés objet

PHP est un langage faiblement typé et peut être utilisé en tant que programmation en langage orienté processus ou programmation orientée objet. Java est un langage fortement typé, purement orienté objet. Les deux langages présentent certaines similitudes dans les aspects orientés objet. Avec l'expérience d'apprentissage Java, il est facile d'apprendre PHP, simplement en regardant ces mots-clés (class, extends, interface, Implementations, final, public, protected, private, static). ) Il y a un sentiment très familier.

J'ai brièvement résumé les similitudes et les différences sur plusieurs aspects. Je ne suis pas un universitaire, je recherche uniquement l'aspect pratique. S'il y a des erreurs, veuillez me corriger.

Comparaison 1 : Déclarations de classe et d'interface, héritage de classe, déclarations d'implémentation d'interface

Interface DéclarationImplémentation d'interfaceInstanciation de classeaccéder à l'objet parentphp utilise le mot-clé parent, java Utilisez le super mot-clé Comparaison 2 : Modificateurs d'accès et méthodes d'accèsPoints de comparaisonMêmes points
Points de comparaison Mêmes points Différences
Déclaration de classe sont tous utilisés Le mot-clé class peut être modifié avec abstract et final. Les significations de ces deux modificateurs sont les mêmes. Le mot-clé class en PHP ne peut pas avoir de modificateurs autres que abstract et final. Le mot-clé class en Java peut avoir un modificateur public, protégé, Private, un fichier en Java. ne peut avoir qu'une seule classe publique
USUSE Interface MOT-MOT-SAME SOMME COMME HÉRITANCE DE CLASS mot-clé Aucun
Utilisez le mot-clé Implements pour implémenter plusieurs interfaces Aucun
Utilisez le nouveau mot-clé, les deux sont renvoyés. Références aux objets, les affectations d'objets sont également des affectations de référence Le nom de classe après le nouveau mot-clé en php peut être une variable de type chaîne, mais Java ne peut pas

Différences
Les mots-clés des modificateurs

sont tous publics, protégés, privés

AucunModificateur par défautMéthodes d'accès aux membres de l'instance et aux méthodes d'instancePoints de comparaison
Comportement du modificateur public : accessible à l'intérieur et à l'extérieur de la classe, protégé : accessible à l'intérieur de la classe et des sous-classes, privé : accessible uniquement à l'intérieur de la classe Contrôle d'accès de PHP Soyez un peu plus lâche
Aucun Paramètres par défaut de PHP est public, Java est par défaut privé
Aucun php doit utiliser $this-> , utilisez-le pour Java, vous pouvez également l'omettre
Comparaison 3 : Membres de classe et méthodes de classe
Mêmes points Différences
Mots clés

statique aucun

Comparaison 4 : Constantes de classeDifférencesJava utilise généralement final, PHP ne peut pas utiliser finalAucunAucun
Points de comparaison Mêmes points
Mots clés const
Domaines de fonction Toutes les instances de cette classe
Méthodes d'accès ClassName::Nom de variable ou de fonction, accessible sans instanciation

Comparaison 5 : Les méthodes abstraites et les classes abstraites sont fondamentalement les mêmes. Les méthodes abstraites et les classes abstraites sont toutes deux modifiées avec le mot-clé abstract. Une classe avec au moins une méthode abstraite est appelée une classe abstraite ne peut pas être instanciée. sous-classe Pour pouvoir être instanciée, toutes les méthodes abstraites de la classe parent doivent être implémentées.

Comparaison 6 : Réécriture/écrasement/surcharge

La signature de la méthode de sous-classe est exactement la même que celle de la méthode de classe parent, qui est appelée réécriture/surcharge. À ce stade, la méthode de classe parent est invisible dans l'enfant. classe. Étant donné que Java est un langage fortement typé, il dispose d'un mécanisme de surcharge (même nom de méthode, signatures différentes, méthode appelée en fonction du type et du numéro réels du paramètre lors de l'appel). PHP est faiblement typé et n'a pas une telle surcharge. Au lieu de cela, il a une surcharge pour créer dynamiquement des attributs et des méthodes de classe, ce qui est réalisé grâce à des méthodes magiques (__get, __set, __unset, __isset, __callStatic).

Apprentissage recommandé :

Formation php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn