黑马程序员技术交流社区

标题: 关于静态static的问题 [打印本页]

作者: Makise_Kurisu    时间: 2015-12-3 00:05
标题: 关于静态static的问题
为什么不加static的时候无法调用呢?
错误: 无法从静态上下文中引用非静态 方法 function()
一定要加 static吗?


作者: feng0606    时间: 2015-12-3 00:31
你在main方法里面调用其他方法得吧?这样的话是main方法是static修饰的,因此其他方法也得静态static修饰,这是java规定的.
作者: jiangshicun007    时间: 2015-12-3 09:21
一句话,静态只能调用静态
作者: TG·小强    时间: 2015-12-3 11:16
  1. class A
  2. {
  3.        void function()
  4.         {
  5.                 System.out.println("A")
  6.        }
  7. }
  8. class B
  9. {
  10.    pubilc static void main(String [] args)
  11.    //主函数为静态。
  12.    {
  13.          A.function();//编译失败
  14.          new A().function();//编译成功
  15.    }
  16. }
复制代码

故静态不能直接调用非静态,需要创建对象
作者: yuanjun52306    时间: 2015-12-3 16:19
静态方法是类加载时就分配空间了,不需要创建对象就可以直接调用;而非静态方法在类加载时还不存在,是需要创建对象才能调用的。所以呢,为什么说静态方法不能调用非静态方法?一个存在的怎么调用一个不存在的呢
作者: 洋葱头头    时间: 2015-12-3 17:21
同楼上  静态只能调用静态
作者: 逆光流浪    时间: 2015-12-3 19:53
两种方法,
1.加static,成为静态方法,就能够调用静态方法了
2.如果想不加static,那么就要实例化一个对象。即给function方法创建一个对象
而且方法名首字母一般是大写的吧。。。
作者: sun4w    时间: 2015-12-3 23:34
需要实例化一个类,才可以调用方法。

除非调用的是一个静态方法(在类加载的时候这个类就存在了,通过类调用)
作者: xiao15779706    时间: 2015-12-4 09:09
本帖最后由 xiao15779706 于 2015-12-4 09:10 编辑

静态只能调用静态
非静态既可以访问静态也可以访问非静态

作者: Yuto吕    时间: 2015-12-4 10:56
如果你把方法定义在主函数的类当中,需要把方法也变成静态方法,如果不想让方法变成静态,需要单独写一个类,然后主函数创建类对象,再调用类方法
作者: hrfhwy    时间: 2015-12-4 22:12
是的,静态语句优先于对象存在,静态只能调用静态
作者: 奔跑着    时间: 2015-12-5 21:28
静态语句优先于对象存在,静态只能调用静态,不能直接调用非静态,需要创建对象
作者: 虔诚精    时间: 2015-12-5 21:39
学习了……{:2_31:}
作者: 迷茫不堪的年纪    时间: 2015-12-5 23:59
加 static 里是本类里用, 如果不加就成方法了
作者: wyasln    时间: 2015-12-6 10:29
静态的东西只能引用静态的东西
作者: 静波cl    时间: 2015-12-6 20:58
静态只能访问静态,非静态既能访问静态,也能访问非静态
作者: 小曼_r9qDE    时间: 2015-12-7 00:58
A:static的注意事项         * a:在静态方法中是没有this关键字的                 * 如何理解呢?                         * 静态是随着类的加载而加载,this是随着对象的创建而存在。                         * 静态比对象先存在。         * b:静态方法只能访问静态的成员变量和静态的成员方法                 * 静态方法:                         * 成员变量:只能访问静态变量                         * 成员方法:只能访问静态成员方法                 * 非静态方法:                         * 成员变量:可以是静态的,也可以是非静态的                         * 成员方法:可是是静态的成员方法,也可以是非静态的成员方法。                 * 简单记:                         * 静态只能访问静态。 * B:案例演示
作者: 魏志林    时间: 2015-12-7 08:01
我也遇到过,确实是这样




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