次のコードはJavaに基づいています。このためStringクラスのAPIに関する考え方
String s = new String("abc");
String ss = s.toUpperCase();
//result: ss = "ABC"
:s.toUpperCase()
私たちは、メソッドに値を渡すことはありませんでしたので、この方法は、意味のあるリターンを持つことはできませんここで、有名な方法「のtoUpperCase()が」、このように呼び出すことができます
値。ここでは、-意味がないの戻り値と呼ばれるものを説明すること
は一例です。上記のよう
//not pass a value to the method
String toUpperCase(){
...
return ???;
}
、戻り値は「S」と呼ばれ、そのオブジェクトとは関係がありません。 (非パラメータメソッドの呼び出しは、多くの場合オブジェクトから独立しています)。 String ss = s.toUpperCase();
どのようにオブジェクト「s」は
との一切の関係を持ち、次が有意義と呼ばれている値を返すことができます:
//pass a value to the method
static String toUpperCase(String str){
.... //to change the "str" into uppercase
return str;
}
今、私は呼び出すことができますが、私は、この非パラメータメソッドを呼び出す場合このようなメソッドtoUpperCase()はString ss = String. toUpperCase(s);
です。私はメソッドに "s"(そのアドレス)を渡すので、オブジェクトを変更して意味のある戻り値を返すことができます。
上記に基づいて、私はこの方法について妥当な疑いを持っています
s.toUpperCase()
。意味のある戻り値を返すことができないからです。
あなたは 'this'リファレンスを理解していますか? _ "非パラメータメソッドの呼び出しは、多くの場合、オブジェクト" _ - から100%偽ではありません。あなたは '静的'メソッドを考えています。 –
's'は' String'のインスタンスで、テキストを表す一連の 'char'sを含みます。 'String#toUpperCase'は、' String'のインスタンスのテキストに作用するインスタンスメソッドであるので、 's'の内容を返しますが、大文字に変換します。それはオブジェクト指向プログラミング – MadProgrammer
番号の中核となるものです。*合理的な疑問ではありません。それは完全に*不合理な*疑いです。 'toUpperCase()'は実際にJavaプログラマーの数百万人**のために働くという単純な事実です。したがって、*理論的な*引数があればうまくいきません。あなたが理解していないJavaに関するものがあるので、あなたの議論は間違っています。 –