• 报错!无法从静态上下文中引用非静态 变量


     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    }   

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

  • 相关阅读:
    .net的委托和事件的直接理解[转载]
    虚函数 多态 函数重载[转载]
    自动化 object <> xml
    用System.Web.HttpRequest模拟一个form的post
    【WP7】动画的使用
    【WP7】关于ListBox控件的数据绑定
    【WP7】坐标变换
    【WP7】页面之间数据交互
    【WP7】调用系统LED灯
    【WP7】MediaPlayer与关闭音乐的方法
  • 原文地址:https://www.cnblogs.com/lubocsu/p/5061393.html
Copyright © 2020-2023  润新知