当前位置:  技术问答>java相关

什么时候应该用static方法,欢迎大家讨论

    来源: 互联网  发布时间:2015-09-16

    本文导语:  什么时候应该用static方法,欢迎大家讨论 使用static方法有什么优点以及缺点? | 小弟谈点愚见,静态方法占用的存储空间小,因为无论多少对象访问静态方法,实际上都只是最开始创建的静...

什么时候应该用static方法,欢迎大家讨论
使用static方法有什么优点以及缺点?

|
小弟谈点愚见,静态方法占用的存储空间小,因为无论多少对象访问静态方法,实际上都只是最开始创建的静态方法所在的类的那个实例,不用创建新的对象。因此如果是比较通用的方法,最好用静态方法,比如DriverManager.getConnection()方法,其次如果不想让其他对象构造某个对象也可以使用静态方法,如
Class a
{
private a(){}
public static a getA()
{
 return new a();
}
}
这样保证其他任何对象不能访问构造函数,当然如果构造函数中有自变量这种方式就更有意义一些,也就是说,如果想使用该对象,必须按照该对象的特定的方式进行构造,如下:
Class a
{
String b;
private a(String b)
{
  this.b=b;
}
public static a getA()
{
 return new a("a String");
}
}
小弟说的不好,希望起到抛砖引玉的作用


|
static方法的内容是唯一的,无论产生多少的对象,内容始终不变,从这个意义上说,它与类的存在同级别,因此可以直接使用类名调用static方法。同时该方法只能使用同为static类型的数据,比较节省存储空间,这也算是一个优点吧。

|
static方法可以在类没有被实例化之前被调用,一般用做库函数.
如java.Math里的方法大多是static: max(), abs()等
我认为这样做有点象c++力的全局函数,虽然不是很oo,但还是很方便和符合逻辑的

|
觉得“我要申请”和我的看法比较相近
和C++对比起来,静态方法就是全局函数,静态变量就是全局变量
(为什么总是长不大) 说得我也同意

|
1、当你不想创建对象就需要调用类的方法,或访问类的变量的时候
2、当你的变量只想保存一个值,并且这个值会一直保留的时候

|
个人认为static最常用在两个方面:
1.一些工具类的方法
2.需要获得单一实例的类中

    
 
 

您可能感兴趣的文章:

  • 使用timer_create应该包含哪一个库啊?连接的时候报错。
  • 如果在linux中执行脚本的时候出现死循环了应该怎么退出
  • APPLET在运行的时候有权限限制吗,如果有应该怎样接触?
  • 我们平时在写程序的时候应该注意什么?才能让C程序的指针不会那么容易跑飞!!
  • 我运行东西时候出现错误,不知道应该怎么解决...帮帮我吧
  • 各位,请问一下,我在第一运行JBuilder的时候,它向我要Login name和password应该怎么输入呀?
  • 使用PreparedStatement向表插入数据的时候,如果一个字段是自动增长的,应该怎么办呀???
  • 我配置jb6的时候,Borland Enterprise Server 5.0 installation directory应该设置成什么呀???
  • & 应该在什么时候用?
  • 当setLayout(null)的时候,组建应该怎么定位?
  • JSP用javabeans的时候java文件应该放在什么位置?
  • 送分大讨论:数据显式应该在什么时候完成?
  • 程序运形不了,帮忙看一下,什么地方应该用数字1,什么时候用小写的L啊
  • 没人知道吗?你们在搞jsp开发的时候,遇见过要在jsp页面上写方法的时候吗?告诉我你们的格式,好不好?
  • 用什么方法可以去掉加载 .ko时候check版本
  • 有什么方法可以在编译的时候知道主机的字节序?
  • 【讨论贴】gcc开发的时候有大家都有什么好的调试方法,来讨论下
  • 编程语言 iis7站长之家
  • 能不能配置Servlet的init方法在Jrun启动的时候就运行?
  • servlet 的init()方法都有什么用?没有东西要初始化的时候也要写上吗?
  • JAVA语法里的VOID到底怎么用呀?我不知道什么时候加到类或者方法里!?
  • jquery判断浏览器后退时候弹出消息的方法
  • 在一个类中的static方法是不是只有在第一次调用类的时候才运行?
  • 用request.setAttribute()方法传递对象,取的时候是null,怎么回事?
  • 各位打印过PDF文档吗?我打印的时候,经常打出乱码来,比如don't就会变成乱码,还有其它非英文字符也会变成乱码,有解决方法吗?
  • Spring中DAO被循环调用的时候数据不实时更新的解决方法
  • 为什么在有的地方用以下的方法,会出现“无效的游标状态”的错误,出现错误的时候要加上rs.next()才能执行,但在另一些地方同样只有以下
  • Android按钮按下的时候改变颜色实现方法
  • mysql多表join时候update更新数据的方法
  • 为什么启动一个线程的时候用start()方法会出错?
  • 我在一个字符设备写了一些方法,read,write等,我在用户层使用这些系统调用的时候怎么用到我这个字符设备驱动所定义的??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • VMware虚拟机linux系统,在启动的时候弹出eth0的时候失败了。进入系统的时候,输入ifconfig没有IP,这是什么情况???那位高手帮帮忙,不甚感激
  • 请问什么时候发出SIGKILL信号、什么时候发出SIGTERM信号?
  • 类的构造函数,什么时候执行,是在new 新类的时候吗?
  • 一个崩溃程序,什么时候有core,什么时候没core
  • 什么时候用EJB,什么时候用jsp,javaBean,servlet才好呀?
  • 什么时候要用“./",什么时候不用?
  • 我在安装 redhat7.2 的时候选择了 GNOME 界面,启动的时候选择了图形界面启动,请问如何更改?
  • 请问一下,安装FreeBSD的时候,我得键盘和鼠标都是USB口的,安装的时候找不到鼠标和键盘怎么办?急!
  • 我用newwin()的时候编译通过了,可是运行的时候报告Segmentation fault
  • 很奇怪,我用jb+wls已经成功的发布过entitybean,我重新做一个的时候,deploy一个jar的时候什么反映都没有??
  • 使用struts的时候,怎么才能在页面打开的时候,form里面已经填入我所需要的值?
  • kernel 什么时候可以中断 什么时候不可以中断
  • 安装gcc4.1.0的时候make时候产生的一个警告,大家帮我看看是怎么回事?
  • 为什么我在安装linux9的时候,机器检测硬件的时候,出现“超频保护中”的提示,请问大家有没有碰到此类的问题
  • 问个低级的问题,我编译的时候没问题,可运行时候出现如下提示:Exception in thread "main" java.lang.NoClassDefFoundError: NativeDem
  • ubuntu 下安装libpcap 的时候make时候出错 请帮忙分析分析
  • 我在执行javac命令的时候没有问题,但是在执行java命令的时候却报如下错误
  • servlet是在什么时候调用init()和destory()?
  • 救助,不知道我的时候跑哪去了
  • 安装文件的时候出错……


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3