class C3P0Utils { private static ComboPooledDataSource datasource = new ComboPooledDataSource();//为什么new出来的这个对象要加static,不加下面return会报错 public static DataSource getDataSource() {
return datasource;
}
public static Connection getConnection() {
try {
return datasource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}还有,为什么下面的两个方法都要加静态呢 对于这个关键字实在不熟练
return datasource;
}
public static Connection getConnection() {
try {
return datasource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}还有,为什么下面的两个方法都要加静态呢 对于这个关键字实在不熟练
因为返回的是datasource变量和它相关的值,static修饰的方法在类初始化时会自动加载而且优先级高于普通的变量申明,如果datasource不加static 这时候还未被申明,未申明的变量调用就会报错,所以需要加static在方法加载前就申明好变量。
静态变量是在类加载时被初始化的,它是被类的所有的对象所共享的。如果你确定是共享变量,那么就可以定义为static变时,否则就不能定义为static变量
因为返回的是datasource变量和它相关的值,static修饰的方法在类初始化时会自动加载而且优先级高于普通的变量申明,如果datasource不加static 这时候还未被申明,未申明的变量调用就会报错,所以需要加static在方法加载前就申明好变量。明白了 感谢感谢