[英]public classname() is never called in class classname - Java
[英]java class :“ classname referenced to newMethodName ”
public class foo{
private String label;
foo(String whereto){
label = whereto;
}
public foo bar(String name){
return new foo(name);
}
}
谁能解释,为什么他们使用类名作为方法名的引用?使用它的目的是什么?
返回类型foo
用于返回类型的新对象foo
出类型的给定对象的foo
。 一个著名的例子是BigDecimal
代表一个不可变的值对象,而add
操作返回一个新构造的BigDecimal
代表旧值加上新值。
public class foo{ // class foo
public foo bar(String name){ // method bar
System.out.print(name) // you need to return instance of foo
return new foo(name);
}
}
当您调用方法bar
,它将返回foo
的实例。 这就是为什么bar
的返回类型为foo
。
此外,在编码时使用更好的Java
命名
public class Foo{ // uppercase start for class name
public foo bar(String name){ // lowercase start for method name
System.out.print(name)
return new FOO(name);
}
}
对于您的编辑:
foo(String whereto){ // this is a constructor for foo class
label = whereto;
}
这意味着如果要创建foo
的实例。 你应该做如下
foo f=new foo("a"); // constructor of foo accepting String;
他们没有使用类名作为参考。 bar
方法的返回类型为foo.class
。 这意味着bar()
方法正在返回对象(或说对foo
类型的对象的引用)。
希望这可以帮助。
类名在这里不完全是参考。 这是方法的返回类型,正如他们在java中所说的那样。 同样,您的方法将抛出编译错误,因为它不返回签名中所述的foo。 可以如下进行纠正。
public class foo{
public foo bar(String name){
System.out.print(name);
return new foo();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.