2017-04-09 6 views
-6

私は本を参照している間、私は次のコードを辿っています。コードの最後には、Productクラスのクラスオブジェクトである "return p"と書かれています。ここで私はそれが正確に "オブジェクトp"が何を返すかを理解していない。私はprintln()ステートメントを使って "p"を印刷しようとしましたが、 "到達不能コード"としてエラーが発生しました。 誰でもこのことをわかりやすくするために私を助けることができますか?"retun class object"がJavaで正確に何を意味するのか分かりますか?

ありがとうございました。

public class ProductDB { 
    public static Product getproduct(String productcode) 
    { 
     Product p = new Product(); 
     p.setcode(productcode); 
     if(productcode.equalsIgnoreCase("java")) 
     { 
      p.setdescription("Murach's beginning java"); 
      p.setprice(49.50); 
     } 
     else if(productcode.equalsIgnoreCase("jsps")) 
     { 
      p.setdescription("Murcha's javs servlets and jsp"); 
      p.setprice(49.50); 
     } 
     else if(productcode.equalsIgnoreCase("mcb2")) 
     { 
      p.setdescription("Murcha's mainframe ciobol"); 
      p.setprice(59.50); 
     } 
     else 
     { 
      p.setdescription("unknown"); 
     } 
     return p; 

    } 
} 
+0

print pの前に 'return p' –

+0

https://docs.oracle.com/javase/tutorial/java/javaOO/index.htmlをお読みになることをお勧めしますか? –

+0

リターン前に印刷する理由は、その時点で関数が存在するため、コードが実行されずにデッドコードが発生するためです。 – Koekje

答えて

0

それはuが、その後Product a = getproduct("My String"); によってa.getcode();a.getdescription()a.getprice()

を他の方法で戻りオブジェクトのdatafields値を取得することができ、それは p.setcode() p.setdescription() p.setprice()を返しますが、その方法で設定したオブジェクトのすべての datafieldsを返します。

あなたのgetproduct方法であなたのpの値を参照してくださいSystem.out.println(p.getcode());など

それはインスタンスまたはあなたはまた

方法ヘッダーパブリック戻り型に戻り型を提供しなければならないreturnキーワードを使用する場合にもpあるProductオブジェクトを返す非常に特異的であることが@ravi >>> >方法Product getproduct()

+0

これはこの質問には答えません。 –

+0

@ M.Prokhorovあなたが返すオブジェクト値が他のメソッドでどのように使われるかを教えていた質問に答えられないのはどういう意味ですか、もしオブジェクトがなければオブジェクトの 'p'値を出力する方法を追加しました彼のProductクラスの '.toString()'メソッドも、すでに多くのコメントが届いていないステートメントで彼のエラーを修正する方法を教えてくれました – abcOfJavaAndCPP

+0

ありがとう。わかった。 – ravi

0

returnステートメントは、この場合Productにおいて、メソッドの戻りタイプを満たすために使用されます。戻り値の型がメソッドシグネチャに設定されると、メソッドはvoid型の場合を除き、その型の何かが返されることを期待します。この方法は、Productの戻り値の型を持っているので、あなたは上で、後でそれを使用するために別の変数内のメソッド呼び出しを保存することができます。

到達不能コードのエラーについては
Product p = getproduct("productcode"); 

、あなたがもし、時間の100%を取得します到達可能な最後のreturnステートメントの後にコードを書き込もうとします。戻り値の型が満たされると、残りのコードはすべて無視されます。

0

あなたの質問はかなり不明です。通常、「戻りクラスオブジェクトp」はClassオブジェクトがpであることを意味します。だからあなたの例ではp.getClass()またはProduct.classです。

それはpはそれではない、あなたのコードでProductクラスのクラスオブジェクトである「Pを返す」と言い、それはProductクラスのインスタンスです。

関連する問題