これはJavaでは何を意味するのでしょうか?
これは、クラス インスタンス自体を表すためにクラス内で使用されます。
このキーワードはクラス内でのそれ自体への参照であり、これによりクラス内のメソッドがその独自のプロパティにアクセスしやすくなります。
java での this の使用法
1. ローカル変数とメンバー変数が同じ名前の場合、メソッド内でこれを使用します。 . 区別するメンバー変数。
class Demo{ String str = "这是成员变量"; void fun(String str){ System.out.println(str); System.out.println(this.str); this.str = str; System.out.println(this.str); } } public class This{ public static void main(String args[]){ Demo demo = new Demo(); demo.fun("这是局部变量"); } }
分析: 上記のクラス Demo にはメンバー変数 str とローカル変数 str (クラスメソッドの仮パラメーター) があり、ローカル変数とメンバー変数が同じ名前であることは明らかです。このとき、通常、メソッド内で str を直接使用すると、実際にはローカル変数 str が使用されますが、メンバー変数 str には影響しません。このとき、メンバー変数で何かを行う必要がある場合は、this を使用する必要があります。キーワード。
質問なのですが、メソッド内に str がない場合、メソッド内でメンバー変数 str を使用するとどうなりますか?実際、メソッド内のすべての操作はメンバー変数 str に対して実行されます。 『Javaプログラミング考』の84ページ中段に、メソッド内で同じクラスの別のメソッドを呼び出す場合は、これを使用する必要はありませんという一文があります。同様に、メソッド内に同じ名前のローカル変数とメンバー変数がない場合、このメソッドでメンバー変数を使用するときにこれを使用する必要はなく、次のコードを実行して確認できます。
class Demo{ String str = "这是成员变量"; void fun(String str1){ System.out.println(str1); System.out.println(str); } } public class This{ public static void main(String args[]){ Demo demo = new Demo(); demo.fun("这是局部变量"); } }
2. このキーワードは、現在のオブジェクトを他のメソッドに渡します
ここには非常に古典的な例があり、『Java Programming Thoughts』の 85 ページにある例です。取り出してじっくり調べてみましょう。
class Person{ public void eat(Apple apple){ Apple peeled = apple.getPeeled(); System.out.println("Yummy"); } } class Peeler{ static Apple peel(Apple apple){ //....remove peel return apple; } } class Apple{ Apple getPeeled(){ return Peeler.peel(this); } } public class This{ public static void main(String args[]){ new Person().eat(new Apple()); } }
これは私自身の理解です。正しくない可能性があります。本の内容を参照してください: Apple は Peeler.peel() メソッドを呼び出す必要があります。何らかの理由で Apple の外部に配置する必要がある操作を実行する外部ユーティリティ メソッド (おそらく、その外部メソッドが多くの異なるクラスに適用され、コードを複製したくないため)。自分自身を外部メソッドに渡すには、this キーワードを使用する必要があります。
分析: シナリオを想像してください。さまざまな果物の皮をむく作業が同じであれば、果物を与えていただければ、私も同じ方法で皮をむきます。次に、上記の例と組み合わせると、フルーツが渡されます。 getPeeled() を実行する前に、このフルーツをパラメーターとして外部の peel() に渡し、これを使用してそれ自体を表し、外部メソッドに渡す必要があります。
3. 現在のオブジェクトへの参照を返す必要がある場合、多くの場合、メソッドに return this を記述します。
このアプローチの利点は次のとおりです。オブジェクトを使用して呼び出す このメソッドは変更されたオブジェクトを返し、そのオブジェクトを使用して他の操作を実行できます。したがって、オブジェクトに対して複数の操作を簡単に実行できます。
public class This{ int i = 0; This increment(){ i += 2; return this; } void print(){ System.out.println("i = " + i); } public static void main(String args[]){ This x = new This(); x.increment().increment().print(); } }
結果は:
4
4. コンストラクターでコンストラクターを呼び出すときは、これを使用する必要があります
クラスには多数のコンストラクターがありますコードの重複を避けるために、1 つのコンストラクター内で他のコンストラクターを呼び出したい場合は、this キーワードを使用できます。 Java プログラミングの考え方には次のような格言があります。通常、これを記述するときは、「このオブジェクト」または「現在のオブジェクト」を指し、それ自体が現在のオブジェクトへの参照を表します。コンストラクター内で、これにパラメーター リストを追加すると、意味が異なります。これにより、この引数リストに一致するコンストラクターが明示的に呼び出され、他のコンストラクターを呼び出すための直接パスが提供されます。
慎重な分析:
main 関数から開始して、new Flower() はメモリ内にスペースを割り当て、オブジェクトを初期化します。コンストラクターを呼び出します。ここではパラメーターは書き込まれません。もちろん、パラメーターなしのコンストラクターであるデフォルトのコンストラクターが呼び出されます。
このパラメーターなしコンストラクターのコードの最初の行は this("hi",122) です。これが意味するのは、パラメーターなしコンストラクターは 2 つのパラメーターを指定してコンストラクターを呼び出し、2 パラメーターのコンストラクターの場合、コードの最初の行は this(s) です。このコード行は 1 つのパラメーターを持つコンストラクターと自動的に照合し、Fflower(String ss) が照合し、両方とも String 型パラメーターであることがわかります。
次に、String 型パラメーターを持つコンストラクターが呼び出され、次のように出力されます: String 型パラメーターのみを持つコンストラクター s = hi
; その後、前のレベルに戻って関数を呼び出します。 with 2 つのパラメーターを持つコンストラクターは、次のように出力します: String および int 型のパラメーターを持つコンストラクター
; パラメーターのないコンストラクターである前のレベルに戻り、次のように出力します: Default constructionor
。
この時点で、コンストラクターは新しく作成されたオブジェクトを初期化し、最終的に main 関数のコードの最後の行に petalCount=122 s=hi
を出力します。
絵を描いてもっとはっきりと見てみましょう。
注意すべき点がいくつかあります:
1、これは 1 つのコンストラクターのみを呼び出すことができ、同時に 2 つを呼び出すことはできません。 1 つのコンストラクター コンストラクター;
2, 呼び出すコンストラクターは先頭に置く必要があります。これは、1 つのコンストラクターで 2 つのコンストラクターを呼び出すことができない理由も説明しており、2 番目のコンストラクターを先頭に置くことはできません。
3. この例では、2 つのパラメーターを持つコンストラクターで、これを使用して 1 つのパラメーターだけを持つ他のコンストラクターを呼び出すことができます。
4. コンストラクター以外のメソッドでコンストラクターを呼び出すために使用することはできません。コード内のコメントを正しくコンパイルできません。
#この概要
1. 現在のオブジェクトへの参照を示します。 2. 関数パラメーターの代わりにクラス メンバー変数を使用することを示します。 3. コンストラクター内で指定されたパラメーターの型を満たすコンストラクターを参照するために使用されます (実際にはコンストラクターでもあります)。ただし、ここでは非常に注意する必要があります。参照できるコンストラクターは 1 つだけであり、それは先頭になければなりません。 4. これは現在のオブジェクトを参照し、static にはオブジェクトがないため、これを静的メソッドで使用することはできません。 php 中国語 Web サイト、無料のJava 入門チュートリアル が多数あり、オンラインで学習することを歓迎します。
以上がこれはJavaでは何を意味するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。
