public static和public有什么区别?
public Connection getConn(){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","fix","123456");
} catch (Exception e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
}
return conn;
} 展开
public static代表是静态方法,可以不通过创建所属对象进行访问;直接public代表是非静态方法,需要先new一个对象进行访问。
通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。
如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。
声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。
扩展资料:
变量声明为static有什么作用:
声明为static的变量称为静态变量或类变量。可以直接通过类名引用静态变量,也可以通过实例名来引用静态变量,但最好采用前者,因为后者容易混淆静态变量和一般变量。静态变量是跟类相关联的,类的所有实例共同拥有一个静态变量。
参考资料来源:百度百科-static (计算机高级语言)
2023-07-25 广告
public static和public的区别:
1、访问变量:
若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法只能调用静态变量,示例方法可以调用非静态变量,也可以调用静态变量。
2、被访问变量:
静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用,而非静态方法只能被对象来使用。
扩展资料:
静态方法的优势与弊端
1、在一些系统中使用非常频繁的方法都使用静态方法可以提高系统性能。
2、为了方便,不用实例化,但这样程序编译运行时就占用了系统资源
3、静态的属性和方法在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放。还有就是,所有访问者看到的静态属性的数据几乎都是一样的,比如A用户设置了UserName这个属性,B用户访问的时候,得到的UserName仍然是A用户设置的那个。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的。
参考资料:百度百科——静态方法
public 表示公共的方法;
静态方法不需要实例化,直接通过 类名.方法()掉问;
公共方法需要实例化,通过new 类名.方法()调用;
看你这个代码, conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","fix","123456");这个conn是在外部实例化好的,所以直接使用了。你也可以栽方法上家static,但是conn需要写在方法里面,或者把conn也写成static.........
这里又牵扯到一个问题:静态方法里面只能访问静态变量.....
SO......理解就好,还是不要改了把。。
估计你代码里面还有关闭链接的方法,。关闭链接哪里 你也需要用conn。也需要改成static。
希望你能理解。。。
如果可以 ,往采纳。。
static 表示不需要初始化就可以访问,实际是在所有new的类之前就分配给内存的。相当于全局的意思。
2017-07-19
public:声明当前被修饰的对象、方法、变量为公有的。这里的公有指的是可以被公有访问,举个例子:一个类就像是一台电脑,公有的部分就是除去电脑本身之外用户可见的部分,譬如:你知道点击哪里可以登录QQ,摁哪里可以开关机,等等,你可以使用这个类所有的可见的东西都是被声明为public的,公有可见且公有可被访问的。
private:声明当前被修饰的变量、方法为私有的。这里的私有指的是仅仅可以被私有访问,举个例子:一个类就像是一台电脑,私用的部分就是除去电脑本身之外用户不可见的部分,譬如:你知道点击哪里可以登录QQ,但是内部到底是怎么登录的QQ你是不知道的,你知道摁哪里可以开关机,但是内部是怎么开关机的你是不知道的,等等,你在使用这个类时那些这个类的确有但是你访问是非法的方法或者变量是被声明为private的,私有不可见且不可访问的。
所以,被private static修饰的属性仅仅可以被静态方法调用,但是只能被本类中的方法(可以是非静态的)调用,在外部创建这个类的对象或者直接使用这个类访问都是非法的。被public static修饰的属性除了可以被静态方法和非静态调用之外,还可以直接被类名和外部创建的对象调用。
综上呢,private static是合法的,且有着其独到的用处:为静态方法提供私有静态属性。public static常用的是为该类提供对外暴露即可以被类名直接调用的静态常量。