黑马程序员技术交流社区

标题: 主函数问题静态问题 [打印本页]

作者: 何超    时间: 2013-11-28 00:13
标题: 主函数问题静态问题
本帖最后由 何超 于 2013-11-28 00:15 编辑
  1. import java.util.Arrays;

  2. class D
  3. {
  4.         public int a=0;
  5.         public void get(){};
  6.         public static void show(){};
  7.         public static void main(String[] args)
  8.         {
  9.                 D d=new D();
  10.                 show();
  11.                 d.a=1;
  12.                 d.get();
  13.         }
  14. }
复制代码

代码如上  主函数不是静态么 为什么可以调用非静态成员!!!
作者: 容嬷嬷当年也是    时间: 2013-11-28 00:38
因为 你都是 public.     
    public int a=0;
        public void get(){};
        public static void show(){};


这里用public 定义 是错误的。在一个程序中不允许 出现这种情况
作者: 衣带赞    时间: 2013-11-28 01:46
没看到你哪里调用了非静态成员了
D d=new D();
show();    //只有这个是调用了静态的方法
d.a=1;     //这个用对象调用的
d.get();    //同样用对象调用的     如果是 get(); 就会报错
作者: BaiZzi    时间: 2013-11-28 08:43
都是public公共的,定义错误!
作者: 菜鸟也疯狂    时间: 2013-11-28 19:17
此时的的、
作者: 菜鸟也疯狂    时间: 2013-11-28 19:19
你是通过  类名.方法名   调用的非静态方法     非静态方法在主函数中就是这种调用方式的
作者: 冯晓骏    时间: 2013-11-28 21:53
在这里new出来的d对象相当于其他类的对象,静态方法中不能出现实例对象的操作指的是不能用本类的对象指针引用什么一些变量或者方法,因为直接用get方法,相当于前面默认加上了this.,所以就不可以,但是它是用类似其他类的对象引用的,get方法前面加的不是this,而是d.,这样是允许的




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