다음 코드는 Java를 기반으로합니다. 여기
, 유명한 방법 "를 toUpperCase()는"이런 식으로 호출 할 수 있습니다 :이를 위해String 클래스의 API에 대한 생각
String s = new String("abc");
String ss = s.toUpperCase();
//result: ss = "ABC"
: 우리는 방법에 값을 통과하지 못한 s.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 % false "오브젝트와 독립적입니다. 당신은'정적'방법을 생각하고 있습니다. –
's'는 문자열을 나타내는 일련의'char's를 포함하는'String'의 인스턴스입니다. 'String # toUpperCase'는'String' 인스턴스의 텍스트를 처리하는 인스턴스 메소드이므로's'의 내용을 반환하지만 대문자로 변환합니다. 그것은 객체 지향 프로그래밍 – MadProgrammer
번호의 근본적인 종류입니다. * 합리적 * 의심하지 않습니다. 그것은 완전히 불합리한 의심입니다. 'toUpperCase()'가 ** 수백만 **의 Java 프로그래머에게 실제로 작동한다는 것은 명백한 사실입니다. 그래서, 이론적 인 * 인수가 작동해서는 안되는 경우 * 합리적인 결론은 당신의 주장이 틀렸다는 것입니다 ... 당신이 이해하지 못하는 Java에 관한 것이 있기 때문입니다. –