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

能具体说说static的用处吗?

    来源: 互联网  发布时间:2014-12-31

    本文导语:  能具体说说static的用处吗? **********Code1********** class TstApp{ public static void main (String args[]){  Next_Level(args[0]);  } public static void Next_Level(String Incoming_String){  System.out.println(Incoming_String);  } } 通不过编译 **********Code2********** ...


能具体说说static的用处吗?
**********Code1**********
class TstApp{
public static void main (String args[]){
 Next_Level(args[0]);
 }
public static void Next_Level(String Incoming_String){
 System.out.println(Incoming_String);
 }
}
通不过编译
**********Code2**********
class TstApp{
public static void main (String args[]){
 TstApp xx=new TstApp();
 Next_Level(args[0]);
 }
public static void Next_Level(String Incoming_String){
 System.out.println(Incoming_String);
 }
}
通过
**********Code3**********
class TstApp{
public TstApp(){
 Next_Level("54xx");
 }
public static void main (String args[]){
 TstApp xx=new TstApp();
 Next_Level(args[0]);
 }
public void Next_Level(String Incoming_String){
 System.out.println(Incoming_String);
 }
}
通过
******************************
实在是搞不清static是干想什么的?

|
在Java中,把static的方法直接当成是C/C++中的全局函数,static的变量当成是C/C++中的全局变量,区别在于:
C/C++中的全局变量是在程序运行时就一定存在的(专业一点是指在main入口点之前就得初始化),java中static变量是要用到这个类的时候才会去初始化才存在的,更节约?:)
C/C++中的全局函数也一样是程序一运行就存在的,java 中的static 方法一样要等到使用这个类时才存在,而且拥有这个类的命名空间,比C/C++中更方便,因为不同的类可以有一模一样名称的static方法,可以从类名来分开这两个全局函数(这就是命名空间的用法)。

从技术一点的角度来说,static 的方法的参数表中不象其他类中的方法一样有一个隐含的this指针,所以在编译时就确定下来,不在类的vtable里出现,不需动态绑定,是静态绑定。

有静态类的存在,一样是不用不存在,用的时候就创建,其它一切同上。
啊,我正在练打字,自我感觉进步很快呀。:)

|
static 静态函数,即在该类对象没有被生成之前即可以直接调用的函数,这样的例子有很多.
code2因为两个都是static,所以直接可以调用,因为在装入该类时,该方法已在内存中,而code1显然不行,code3因为调用的main函数已经生成对象xx,所以可以通过。

|
第一个程序:你在静态函数中调用非静态函数,错.
二:调用静态函数,ok.
三:在静态函数(main)中生成了类实例,所以可以执行Next_Level.

|
用static定义的叫类变量(类方法),不用通过实例(instance)来访问.否则叫实例变量,须通过new 一个instance 来调用.

|
Static就是静态的,不允许子孙类中对此方法进行Override超越

|
不对,你的第一种写法,也可以编译通过。

|
有STATIC类,STATIC的作用就是不必生成类的实例可以直接调用,不管是函数,类,还是变量,作用有点类似于C/C++的全局函数和变量

|
这个问题我发现我曾经回复过
哈哈可是我却没有发现我的文字?!
to 54xx():
上次问这个问题的是你吗?
也是三段代码比较的,有关static的
我不说了,上面那么多大侠全给讲了,
我靠什么拿分?!


|
to richardsong(白玉老虎) :
  Static方法是可以重写的。不信你可以试试!

|
We can not use the keyword 'this' in static method, because the instance doesn't exist when we call this static method.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 说说有没有必要考linux认证!谁考过了!说说细节!
  • 大家说说,这个东西能值多少钱?
  • Mastering EJB的中文版出来了,大家说说好不好?
  • 大家说说,你们用的jdbc driver for sqlserver是哪儿的!
  • 大家说说,微软的jdbc是不是很烂,好多方法不支持
  • 说说你常用的web 报表工具,参与有分
  • 谁能说说Linux的类库啊?(谢谢了,^_^)
  • 大家说说精通unix/linux操作系统的话待遇、前景怎么样?
  • 大家来说说 郁闷至极
  • oops实现,高手进来说说
  • 为什么这么多空间说说根目录空间不足啊
  • 百度运维,大家说说前景怎么样?
  • 说说windows线程和linux线程的区别?
  • 说说你使用的操作系统
  • 说说有没有必要考linux认证!谁考过了!说说细节! iis7站长之家
  • 请高手说说JAVA BEAN!!谢谢(我初学,呵呵,领教了。)
  • java能做短信息发送软件吗?接口是什么?谁能明确说说这方面知识
  • 有谁说说jsp中的变量与函数定义
  • 谁能说说什么是j2ee connnector?
  • 大家说说在 Linux 下什么浏览器最好?


  • 站内导航:


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

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

    浙ICP备11055608号-3