黑马程序员技术交流社区

标题: 可以在成员变量中创建 数组为什么要使用static关键字? [打印本页]

作者: ZHAOWEI    时间: 2014-5-20 06:26
标题: 可以在成员变量中创建 数组为什么要使用static关键字?
本帖最后由 ZHAOWEI 于 2014-5-21 22:46 编辑

//方法不对,提示报错
class Demo {
        static int[] arr = new int[3];
// int[] arr = new int[3];//没有static不能创建数组这是为什么?new的数据本身就会进入堆内存,static也是把修饰的内容载入堆中,直接new不就完了,为什么还要用static关键字?
        public static void main(String[] args) {
                System.out.println(arr[0]);
        
        }
}
作者: ۩大世界小人物    时间: 2014-5-20 08:26
  1. class Demo
  2. {
  3.         int[] arr = new int[3];
  4.         //首先主函数是静态的  
  5.         public static void main(String[] args)
  6.         {
  7.                 //在静态函数中  静态的  只能调用  静态的  无论方法  还是   变量
  8.                 System.out.println(arr[0]);//因此   你在 调用 arr[0]这个  数组  时  由于 他不是  静态的  所以 报错

  9.         }
  10. }
复制代码

作者: wangkerui    时间: 2014-5-20 09:20
神了,第一次听说可以这样的,有很多事没有为什么,就像很多程序员写的第一个程序都输出“Hello World" 一样!
作者: code2014    时间: 2014-5-20 10:48
静态方法只能调用静态的数据
作者: 周俊波    时间: 2014-5-20 11:22
1.加载静态成员/代码块:
2.加载非静态成员/代码块:
3.调用构造方法(先递归地调用父类的构造方法(Object的最先)也就是上溯下行);
main方法是静态的 你知道吧,所以说程序先找到main方法区执行,发现要找数组,要是你不把数组写成static的,那么程序在这个时候如何能找到数组(请根据上面的顺序判断)
作者: gentleman    时间: 2014-5-20 11:29
主函数是静态的,静态只能调用静态
作者: 雨落千木的时节    时间: 2014-5-20 12:00
你把new数组的语句放在main方法中,这样就不用static了,要放在main方法外,就是静态变量了,必须static修饰
作者: ZHAOWEI    时间: 2014-5-21 22:13
۩大世界小人物 发表于 2014-5-20 08:26

那我不在主函数中调用,新建一个非静态的方式是不是就可以了?
作者: ZHAOWEI    时间: 2014-5-21 22:16
周俊波 发表于 2014-5-20 11:22
1.加载静态成员/代码块:
2.加载非静态成员/代码块:
3.调用构造方法(先递归地调用父类的构造方法(Object ...

首先它是在成员位置建的数组,new不是会载入堆内存吗 ?这样还找不到吗?》
作者: 路漫漫_求索    时间: 2014-5-22 14:58
因为要在主函数中加载,主函数是静态的,静态只能调用静态,所以要加static
作者: BigKarel    时间: 2014-5-22 15:31
主函数是静态的

作者: never615    时间: 2014-5-22 16:04
定义数组的话一定要用static修饰   要是定义 int a=1; 在main里面输出了就不用static了

这是规定吗?为啥啊?同求?

class Test
{
         int[] arr = {1};//定义数组的话一定要用static修饰   要是定义 int a=1; 在main里面输出了就不用static了
     public static void main(String[] args) {
         System.out.println(arr[0]);
        
     }
}




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