繁体   English   中英

java class:“引用到newMethodName的类名”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM