zoukankan      html  css  js  c++  java
  • 报错!无法从静态上下文中引用非静态 变量

     1 import java.awt.Point;
     2   class rectangle
     3     { int x1=0;
     4       int y1=0;
     5       int x2=0;
     6       int y2=0;
     7      
     8      rectangle point(int x,int y,int z,int w)
     9       {x1= x;
    10        y1= y;
    11        x2= z;
    12        y2= w;
    13        return this;
    14        }
    15     
    16       public static void main(String[] args)
    17 
    18        { rectangle experiment = new rectangle();
    19          experiment.point(1,2,3,4);
    20          System.out.print(x1+" "+y1+" "+x2+" "+y2);
    21        
    22         }
    23    
    24    }    

    注意:  上述代码运行时:报错!无法从静态上下文中引用非静态 变量,原因是:静态主方法只能访问静态变量;如果要访问动态变量,必须将动态变量实例化。

    import java.awt.Point;
      class rectangle
        { int x1=0;
          int y1=0;
          int x2=0;
          int y2=0;
         
         rectangle point(int x,int y,int z,int w)
          {x1= x;
           y1= y;
           x2= z;
           y2= w;
           return this;
           }
        
          public static void main(String[] args)
    
           { rectangle experiment = new rectangle();
             experiment.point(1,2,3,4);
             System.out.print(experiment.x1+" "+experiment.y1+" "+experiment.x2+" "+experiment.y2);
           
            }
       
       }    

    以上程序运行正确。

    说白了,就是在JAVA程序中,除了主静态方法以及类方法之外,其他在该类下定义的实例变量、实例方法,在主类方法中调用时必须要将其实例化,说白了就是要加上对象的引用:

    比如: 某个对象.变量

             某个对象.方法

     1 import java.awt.Point;
     2   class rectangle
     3     { int x1=0;
     4       int y1=0;
     5       int x2=0;
     6       int y2=0;
     7      
     8      rectangle point(int x,int y,int z,int w)
     9       {x1= x;
    10        y1= y;
    11        x2= z;
    12        y2= w;
    13        return this;
    14        }
    15      void printrectangle()
    16        { System.out.print(x1+" "+y1+" "+x2+" "+y2);
    17         }
    18       public static void main(String[] args)
    19 
    20        { rectangle experiment = new rectangle();
    21          experiment.point(1,2,3,4);
    22          experiment.printrectangle();
    23        
    24         }
    25    
    26    }   

    以上程序也可以实现相同的功能。

  • 相关阅读:
    最难的事
    性格决定命运,习惯决定未来
    系统构架师之路
    时间是经不起浪费的
    如何投资自己,增加自身价值!
    最好的程序员大多是自学成才的
    杂记
    Win7启动Oracle出错
    推荐代码生成器工具排行
    Hibernate 与 Oracle 11g 的问题
  • 原文地址:https://www.cnblogs.com/lubocsu/p/5061393.html
Copyright © 2011-2022 走看看