ホームページ  >  記事  >  バックエンド開発  >  phpとjavaのオブジェクト指向の違いは何ですか

phpとjavaのオブジェクト指向の違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-09-17 16:20:422045ブラウズ

違い: 1. PHP の class キーワードには、abstract と Final 以外の修飾子を含めることはできませんが、Java では含めることができます。 2. php では new キーワードの後のクラス名は文字列型変数にすることができますが、Java ではそうではありません。 3. 親オブジェクトにアクセスする場合、php はparentを使用し、javaはsuperを使用します。

phpとjavaのオブジェクト指向の違いは何ですか

このチュートリアルの動作環境: Windows7 システム、PHP7.1&&java8 バージョン、DELL G3 コンピューター

PHP およびJava 指向のオブジェクトの不完全な比較

PHP は、プロセス指向またはオブジェクト指向の方法でプログラムできる弱い型指定言語です。 Java は厳密に型指定された、純粋にオブジェクト指向の言語です。 2 つの言語はオブジェクト指向の面でいくつかの類似点があり、Java の学習経験があれば、これらのキーワード (クラス、拡張、インターフェイス、実装、最終、パブリック、保護、プライベート、静的) を見るだけで PHP を簡単に学習できます。とても懐かしい感覚があります。

いくつかの点での類似点と相違点を簡単にまとめましたが、私は学者ではなく、実用性のみを追求していますので、間違いがあればご指摘ください。

比較 1: クラスとインターフェイスの宣言、クラスの継承、インターフェイスの実装宣言

#インターフェース宣言インターフェース キーワードを使用しますクラス継承インターフェイス継承##インターフェースの実装複数のインターフェースを実装するには、implements キーワードを使用しますなしクラスのインスタンス化new キーワードを使用するとオブジェクトへの参照が返され、オブジェクトの割り当ても参照の割り当てになりますphp の new キーワードの後のクラス名文字列型変数にすることができます、しかし、Java はできません親オブジェクトにアクセスすることはできません#比較 2: アクセス修飾子とアクセス メソッド
比較ポイント 同じ点 異なる点
クラス宣言 すべて class キーワードを使用します。修飾子はabstractとfinalで変更されます。これら2つの修飾子の意味は同じです。 PHPのclassキーワードにはabstractとfinal以外の修飾子を含めることはできません。Javaのclassキーワードにはpublic、proctected、private修飾子を含めることができます。 Java ファイルにはパブリック クラスを 1 つだけ含めることができます
#上記と同じ
extends キーワードを使用、単一継承 なし
extends キーワードを使用 なし
php ではparentキーワードを使用し、javaではsuperキーワードを使用してください。 キーワード

##比較ポイント

同じポイント相違点修飾子キーワードはすべてパブリック、プロテクト、プライベートです なし修飾子の動作public: クラス内外の両方でアクセス可能、protected: クラスおよびサブクラス内でアクセス可能、private: クラス内でのみアクセス可能 php のアクセス制御はもっと緩くすべきですphp のデフォルトは public、java のデフォルトは privatephp では $this->gt; を使用する必要があり、java Use this. を使用するか、#比較 3: クラス メンバーとクラス メソッド
#デフォルト修飾子 なし
インスタンス メンバーのアクセス メソッドとインスタンス メソッド None
を省略できます。

比較ポイント同じ点

異なる点なし#スコープこのクラスのすべてのインスタンスなしアクセス メソッドクラス名::変数または関数名。インスタンス化なしでアクセスされた #比較 4: クラス定数 #比較ポイント同じポイント
##キーワード 静的
#None

異なる点

##キーワードスコープクラスのすべてのインスタンスクラス名::変数または関数名、インスタンス化せずにアクセス可能
const Java は通常、final を使用しますが、PHP は Final を使用できません
なし アクセスメソッド
none

比較 5: 抽象メソッドと抽象クラスは基本的に同じです。抽象メソッドと抽象クラスは両方とも、abstract キーワードで変更されます。少なくとも 1 つの抽象メソッドを持つクラスは、抽象クラスと呼ばれます。抽象クラスは、サブクラスをインスタンス化したい場合は、親クラスのすべての抽象メソッドを実装する必要があります。

比較 6: 書き換え/上書き/オーバーロード

サブクラス メソッドは、親クラス メソッドとまったく同じシグネチャを持ち、これを書き換え/上書きと呼びます。 、親クラスのメソッド。サブクラスでは表示されません。 Java は厳密に型指定された言語であるため、オーバーロード メカニズム (同じメソッド名、異なるシグネチャ、呼び出し時に実際のパラメータの型と数値に基づいてどのメソッドが呼び出されるか) を備えています。 PHP は型指定が弱く、そのようなオーバーロードはありませんが、代わりに、マジック メソッド (__get、__set、__unset、__isset、__callStatic) を通じてクラスの属性とメソッドを動的に作成するオーバーロードがあります。

推奨学習:

php トレーニング

以上がphpとjavaのオブジェクト指向の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。