A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 没说的话…… 中级黑马   /  2014-12-31 22:42  /  1726 人查看  /  12 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

写代码时 只会用静态成员变量 写方法不知道什么时候加上静态 求大神们告知

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

12 个回复

倒序浏览
1)当你需要调用一个方法function1( )调用一个静态方法function2( )时,需要将方法function1( )声明为static;
2)当你在子类中重写父类方法时,如果父类方法声明为static,那么子类中重写的方法也需要static修饰;
暂时就想到这两条,请楼主参考,也请大神们指正
回复 使用道具 举报
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的;当对象中出现共享数据时,该数据被静态所修饰
回复 使用道具 举报
一般来说,如果一个方法需要被同类中的main方法调用,那么就需要静态修饰(因为静态只能访问静态),或者需要被其它类直接调用也需要静态修饰
回复 使用道具 举报
引用了类非静态成员的方法肯定不能是静态的。
个人理解就是想作为工具方法的方法,就是可以在其它地方使用其功能的方法,声明成静态方法。
回复 使用道具 举报
二楼的是毕老师在视频中讲解时的原话
回复 使用道具 举报
5楼机智的朋友
回复 使用道具 举报
青衫禅客 发表于 2015-1-1 02:31
一般来说,如果一个方法需要被同类中的main方法调用,那么就需要静态修饰(因为静态只能访问静态),或者需 ...

main函数前面的static怎么看
回复 使用道具 举报
被风扬起的沙 发表于 2015-1-1 10:51
main函数前面的static怎么看

两种说法:第一种,main方法作为java程序运行的入口,肯定需要静态才行啦,不静态虚拟机怎么开始运行呢?!第二种,老高那帮家伙当初就是这么设计的,现在也只能这样用了咯
回复 使用道具 举报
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了多少次。都不会多次执行去获取数据库连接的操作。有助提升性能
回复 使用道具 举报
什么时候使用静态?

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

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

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

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

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

        当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
回复 使用道具 举报
希望能帮得到你,其实我也不是太懂,我也是一直在看
回复 使用道具 举报
青衫禅客 发表于 2015-1-1 13:17
两种说法:第一种,main方法作为java程序运行的入口,肯定需要静态才行啦,不静态虚拟机怎么开始运行呢? ...

好吧。。。现在半知半懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马