黑马程序员技术交流社区

标题: 求大神告知static什么时候用 [打印本页]

作者: 没说的话……    时间: 2014-12-31 22:42
标题: 求大神告知static什么时候用
写代码时 只会用静态成员变量 写方法不知道什么时候加上静态 求大神们告知
作者: 任我行_2014    时间: 2015-1-1 00:28
1)当你需要调用一个方法function1( )调用一个静态方法function2( )时,需要将方法function1( )声明为static;
2)当你在子类中重写父类方法时,如果父类方法声明为static,那么子类中重写的方法也需要static修饰;
暂时就想到这两条,请楼主参考,也请大神们指正
作者: 吴海松    时间: 2015-1-1 02:15
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的;当对象中出现共享数据时,该数据被静态所修饰
作者: 青衫禅客    时间: 2015-1-1 02:31
一般来说,如果一个方法需要被同类中的main方法调用,那么就需要静态修饰(因为静态只能访问静态),或者需要被其它类直接调用也需要静态修饰
作者: 常强儿    时间: 2015-1-1 02:56
引用了类非静态成员的方法肯定不能是静态的。
个人理解就是想作为工具方法的方法,就是可以在其它地方使用其功能的方法,声明成静态方法。
作者: FINE    时间: 2015-1-1 09:03
二楼的是毕老师在视频中讲解时的原话
作者: 精英通    时间: 2015-1-1 09:48
5楼机智的朋友
作者: 被风扬起的沙    时间: 2015-1-1 10:51
青衫禅客 发表于 2015-1-1 02:31
一般来说,如果一个方法需要被同类中的main方法调用,那么就需要静态修饰(因为静态只能访问静态),或者需 ...

main函数前面的static怎么看
作者: 青衫禅客    时间: 2015-1-1 13:17
被风扬起的沙 发表于 2015-1-1 10:51
main函数前面的static怎么看

两种说法:第一种,main方法作为java程序运行的入口,肯定需要静态才行啦,不静态虚拟机怎么开始运行呢?!第二种,老高那帮家伙当初就是这么设计的,现在也只能这样用了咯
作者: 小僧玄奘    时间: 2015-1-1 20:09
static{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@localhost:1521:orcl";
    //orcl为数据库的SID
    String user="test";
    String password="test";
    Connection conn= DriverManager.getConnection(url,user,password);
}
比如你写JDBC数据库连接的时候可以和上面一样把获取数据库连接放到静态块中。这样无论这个Dao类new了多少次。都不会多次执行去获取数据库连接的操作。有助提升性能
作者: 446111220    时间: 2015-1-1 20:55
什么时候使用静态?

        从两方面下手: 因为静态修饰的内容有成员变量和函数。

1、什么时候定义静态变量(类变量)呢?

        当对象中出现共享数据时,该数据被静态所修饰。

        对象中的特有数据要定义成非静态存在于堆内存中。

2、什么时候定义静态函数呢?

        当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。

作者: 446111220    时间: 2015-1-1 20:56
希望能帮得到你,其实我也不是太懂,我也是一直在看
作者: 被风扬起的沙    时间: 2015-1-2 08:18
青衫禅客 发表于 2015-1-1 13:17
两种说法:第一种,main方法作为java程序运行的入口,肯定需要静态才行啦,不静态虚拟机怎么开始运行呢? ...

好吧。。。现在半知半懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2