public class EmpService {
private EmpDao empDao = (EmpDao) DaoFactory.getDao("empDao");    private static EmpService empService= new EmpService();
    
    private EmpService(){
    
    }
    
    public static EmpService getInstance(){
return empService;
}
public static List<Emp> getAllEmp(Emp emp) {
empDao.
           //为什么把该方法声明成为静态后就不能通过empDao对象来调用DAO的方法了??????
           //先谢谢你的指教········
}
}

解决方案 »

  1.   

    static方法不是针对某个对象的实例的,而是针对整个对象的,也就是说不用实例化你就可以使用这个方法。
      

  2.   

    再补充一句,static方法是类的方法,不归任意个类所有。
      

  3.   

       明白了一些!我只理解了static是静态的到程序加载的时候就初始化,而且只初始化一次。我还想问下。在哪些情况下要把哪些变量或方法声明为static
      

  4.   

    框架里,一般把只需本文件全局调用,单不想被外部文件访问的方法定义为static
      

  5.   

    Static的用法:
    1. 声明全局静态常量,如:
       public static final String COLOR_RED = "red";
    2. 声明工具方法,XXXUtils这样命名的类中包含了大量的静态方法,因为静态方法不需要创建对象就可以调用,因而工具类中的方法一般定义成静态的。
    3. 在一些有特殊要求的类中,用于返回该类的实例对象,提供的getInstance方法定义为static的,如:
       Java里的Calendar类中getInstance()方法是静态的
       在单例设计模式里,也是如此
      

  6.   

    谢谢大家。通过大家的帮助和查询的一些资料。我对static有了一定的了解。