parameter.method()方法如何工作?

时间:2013-04-15 15:09:37

标签: java string

好吧,我正在考虑那种方法。 他们不会重复参数,但他们会与他们合作。

示例:String API的.replace(Char, Char),它使用String后跟一个点。

像:

String test = "= Text = without = equals";
String output = test.replace("=","");

如果没有接受参数测试,它如何工作? 我只是好奇,想做这样的方法。

抱歉我的英语不好! 感谢。

3 个答案:

答案 0 :(得分:0)

这些是instance methods,这意味着它们需要实例化的类对象才能运行。因此,字符串类知道示例中test的值,因为它可以访问实例化的数据。

要创建这些类型的方法,只需在类中定义它们,不要将它们标记为静态。

答案 1 :(得分:0)

String是一个对象。类定义是Java标准库的一部分。该定义包括replace方法。

由于String是final类,因此您无法将其子类化以添加其他方法。所以你不能做你想做的事。

答案 2 :(得分:0)

假设您构建了一种新类型的String,它只替换了东西(为什么不呢?!):

public class MyString {
    private final String s;
    public MyString(String s) {
        this.s = s;
    }
    public String replace(String search, String replace) {
        return s.replace(search, replace);
    }
}

现在你可以这样称呼它:

MyString myString = new MyString("= Text = without = equals");
String output = myString.replace("=", "");

呃瞧,你做了同样的“伎俩”!您可以看到它是如何工作的:您的MyString对象在内部保留一些数据(s变量)并可以从其方法中访问该数据。