我们是否必须在Static类上创建新的

时间:2012-04-21 14:10:59

标签: java android static

在浏览文档时,我读了一些ViewHolder是静态类的地方,但它是否需要在静态类上创建新的? 在那个例子中他们已经做了新的事情?但是根据这个概念,新的不应该在静态类上完成吗?

3 个答案:

答案 0 :(得分:1)

你只能用四种方式构建类:

  1. 使用“新”
  2. 使用Class.newInstance
  3. 使用内部使用new创建新实例的方法/工厂
  4. 使用object.clone,如果支持
  5. 1和3是目前使用最多的

答案 1 :(得分:1)

This explains it well

  

创建嵌套类实例的语义可以是   混乱。下面是一个定义静态嵌套类的简单类   和一个内在的阶级。特别注意主要方法,其中一个   创建每个实例类的实例。

 // creating an instance of the enclosing class 
 NestedClassTip nt = new NestedClassTip();


 // creating an instance of the inner class requires 
 // a reference to an instance of the enclosing class 
 NestedClassTip.NestedOne nco = nt.new NestedOne();


 // creating an instance of the static nested class 
 // does not require an instance of the enclosing class 
 NestedClassTip.NestedTwo nct = new NestedClassTip.NestedTwo();



public class NestedClassTip {
private String name = "instance name";
private static String staticName = "static name";

public static void main(String args[]) {
    NestedClassTip nt = new NestedClassTip();

    NestedClassTip.NestedOne nco = nt.new NestedOne();

    NestedClassTip.NestedTwo nct = new NestedClassTip.NestedTwo();
}

class NestedOne {
    NestedOne() {
        System.out.println(name);
        System.out.println(staticName);
    }
}

static class NestedTwo {
    NestedTwo() {
        System.out.println(staticName);
    }
} }
     

嵌套类可能会令人困惑,但一旦了解了它们的用途   并习惯了语义,对他们来说并不是很多。如果你的话   想了解更多有关嵌套类的详细信息,请查看   Java语言规范。

答案 2 :(得分:0)

将类称为static,并不是最好的表达式,因为它通常意味着不必实例化类。但它也可能取决于首先要讨论的背景,因为你的问题没有给出它。