public static和public有什么区别?

为什么这个方法不要加static?publicConnectiongetConn(){try{Class.forName("oracle.jdbc.driver.Orac... 为什么这个方法不要加static?
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;
}
展开
 我来答
幻翼高达Zero
2019-05-24 · TA获得超过1.7万个赞
知道答主
回答量:499
采纳率:0%
帮助的人:8.1万
展开全部

public static代表是静态方法,可以不通过创建所属对象进行访问;直接public代表是非静态方法,需要先new一个对象进行访问。

通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。

如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。

声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。

扩展资料:

变量声明为static有什么作用:

声明为static的变量称为静态变量或类变量。可以直接通过类名引用静态变量,也可以通过实例名来引用静态变量,但最好采用前者,因为后者容易混淆静态变量和一般变量。静态变量是跟类相关联的,类的所有实例共同拥有一个静态变量。

参考资料来源:百度百科-static (计算机高级语言)

Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
啦啦啦额68
2019-09-21 · TA获得超过2867个赞
知道答主
回答量:130
采纳率:0%
帮助的人:3.2万
展开全部

public static和public的区别:

1、访问变量:

若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法只能调用静态变量,示例方法可以调用非静态变量,也可以调用静态变量。

2、被访问变量:

静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用,而非静态方法只能被对象来使用。

扩展资料:

静态方法的优势与弊端

1、在一些系统中使用非常频繁的方法都使用静态方法可以提高系统性能。

2、为了方便,不用实例化,但这样程序编译运行时就占用了系统资源

3、静态的属性和方法在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放。还有就是,所有访问者看到的静态属性的数据几乎都是一样的,比如A用户设置了UserName这个属性,B用户访问的时候,得到的UserName仍然是A用户设置的那个。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的。

参考资料:百度百科——静态方法

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aikangs
推荐于2017-10-10 · TA获得超过482个赞
知道小有建树答主
回答量:465
采纳率:100%
帮助的人:224万
展开全部
public static 表示公共的静态方法;
public 表示公共的方法;
静态方法不需要实例化,直接通过 类名.方法()掉问;
公共方法需要实例化,通过new 类名.方法()调用;

看你这个代码, conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","fix","123456");这个conn是在外部实例化好的,所以直接使用了。你也可以栽方法上家static,但是conn需要写在方法里面,或者把conn也写成static.........
这里又牵扯到一个问题:静态方法里面只能访问静态变量.....
SO......理解就好,还是不要改了把。。
估计你代码里面还有关闭链接的方法,。关闭链接哪里 你也需要用conn。也需要改成static。

希望你能理解。。。
如果可以 ,往采纳。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江城蒋少
2018-04-13
知道答主
回答量:85
采纳率:20%
帮助的人:10.2万
展开全部
public 访问控制,表示在类外面也可以访问的类内部的信息public是访问权限修饰符,用于控制外界对类内部成员的访问,声明为public的对象成员是完全共有的,外界可以随意访问,除此之外还有private,protected和默认。
static 表示不需要初始化就可以访问,实际是在所有new的类之前就分配给内存的。相当于全局的意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-07-19
展开全部
static:静态修饰符,被static修饰的变量和方法类似于全局变量和全局方法,可以在不创建对象时调用,当然也可以在创建对象之后调用。常见的可以用于工具类的工具方法中等,譬如:Math类中的绝大多数方法都是静态方法,他们扮演了工具方法的作用。
public:声明当前被修饰的对象、方法、变量为公有的。这里的公有指的是可以被公有访问,举个例子:一个类就像是一台电脑,公有的部分就是除去电脑本身之外用户可见的部分,譬如:你知道点击哪里可以登录QQ,摁哪里可以开关机,等等,你可以使用这个类所有的可见的东西都是被声明为public的,公有可见且公有可被访问的。
private:声明当前被修饰的变量、方法为私有的。这里的私有指的是仅仅可以被私有访问,举个例子:一个类就像是一台电脑,私用的部分就是除去电脑本身之外用户不可见的部分,譬如:你知道点击哪里可以登录QQ,但是内部到底是怎么登录的QQ你是不知道的,你知道摁哪里可以开关机,但是内部是怎么开关机的你是不知道的,等等,你在使用这个类时那些这个类的确有但是你访问是非法的方法或者变量是被声明为private的,私有不可见且不可访问的。
所以,被private static修饰的属性仅仅可以被静态方法调用,但是只能被本类中的方法(可以是非静态的)调用,在外部创建这个类的对象或者直接使用这个类访问都是非法的。被public static修饰的属性除了可以被静态方法和非静态调用之外,还可以直接被类名和外部创建的对象调用。
综上呢,private static是合法的,且有着其独到的用处:为静态方法提供私有静态属性。public static常用的是为该类提供对外暴露即可以被类名直接调用的静态常量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式