ビデオ: Introduction to Kotlin (Google I/O '17) 2024
Javaでオブジェクトを扱うとき、==と!を使うことができます。 =オブジェクトを互いに比較する。たとえば、コンピュータ画面に表示されるボタンはオブジェクトです。マウスでクリックしたものが画面上の特定のボタンであるかどうかを確認できます。これは、Javaの等価演算子で行います。
if(例:getSource()== bCopy){クリップボード。 setText(これはgetText());
Javaの比較スキームの大きな問題は、2つの文字列を比較した場合です。 2つの文字列を互いに比較すると、二重等号を使用したくないです。二重等号を使用すると、「この文字列は他の文字列と同じ場所に格納されていますか? "通常、それはあなたが尋ねたいものではありません。
<! - 1 - >代わりに、通常、「この文字列は他の文字列と同じ文字を持っていますか? 2番目の質問(より適切な質問)をするには、JavaのString型に という名前のメソッドがあります。 equalsメソッドは、2つの文字列を比較して、同じ文字が含まれているかどうかを調べるメソッドです(Java APIで定義されています)。 Javaのequalsメソッドを使用する例については、このコードリストを参照してください。 (図は、リスト内のプログラムの実行を示しています。)
<! - 2 - >
インポート静的Java。ラング。システム。 *; import java。 util。スキャナ;パブリッククラスCheckPassword {public static void main(String args []){out。 print( "パスワードは?");スキャナのキーボード=新しいスキャナ(入力);文字列パスワード=キーボード。次();でる。 println( "あなたが入力しました>>" +パスワード+ "<<");でる。 println(); if(パスワード== "swordfish"){out。 println( "あなたが入力した単語は保存されています");でる。 println( "本物と同じ場所にある");でる。 println( "パスワード。あなたはa"でなければなりません);でる。 println( "ハッカー");} else {out。 println( "あなたが入力した単語は"ではありません);でる。 println( "同じ場所に格納されています");でる。 println( "実際のパスワードですが、それは");でる。 println( "大したことはありません");} out。 println(); if(パスワード。( "swordfish")){out。 println( "あなたが入力した単語には");でる。 println( "本物と同じ文字");でる。 println( "パスワード、あなたは私たちを使うことができます");でる。 println( "貴重なシステム");} else {out。 println( "あなたが入力した単語はそうではありません");でる。 println( "同じ文字を持つ");でる。 println( "本当のパスワード。できません");でる。 println( "貴重なシステムを使用する");}キーボード。 close();}}リスティングでは、キーボードを呼び出します。 next()は、ユーザがコンピュータのキーボードで入力する単語を取得します。コードはこの単語を
という名前の変数に変換します。 プログラムのif文は、パスワードと "swordfish"を比較する2つの異なる手法を使用します。 <! - 3 - >
==を使用してJavaのequalsメソッドを使用した結果。 本書の例は、ほとんどがテキストベースですが、DummiesのWebサイトでは、ほとんどの例のほのかなバージョンを見つけることができます。これらのより洗練されたバージョンは、ウィンドウ、ボタン、テキストフィールド、およびその他の典型的なグラフィカルユーザーインターフェイス (GUI)の要素を備えています。 2つの手法のうち、Javaのequalsメソッドを使用するほうが適切です。 equalsメソッドは面白く見えます。なぜなら、それを呼び出すと、ある文字列の後にドットを置き、もう一方の文字列をかっこで囲みます。しかし、それはあなたがそれをしなければならない方法です。
Javaのequalsメソッドを呼び出すときに、どの文字列がドットを取得し、どの文字列がかっこを取得するかは関係ありません。たとえば、リストでは、
if( "swordfish"。equals(password))
というように書くことができます。このメソッドは同様に機能します。
Javaのequalsメソッドの呼び出しは不均衡に見えますが、そうではありません。ドットとかっこの間の明らかな不均衡の背後には理由があります。パスワードオブジェクトと "swordfish"オブジェクトの2つのオブジェクトがあるという考えがあります。
これらの2つのオブジェクトのそれぞれはString型です。 (ただし、パスワードはString型の変数で、 "swordfish"はString型のリテラルです。)パスワードを書き込むとき。 equals( "swordfish")では、パスワードオブジェクトに属するequalsメソッドを呼び出しています。あなたがそのメソッドを呼び出すと、メソッドのパラメータ(意図しない)としてメソッドに "swordfish"を送ります。
文字列を互いに比較するときは、等号ではなくequalsメソッドを使用します。