成员变量在static中的使用

来源:互联网 发布:php 类反射机制 编辑:程序博客网 时间:2024/05/05 21:11
/* 我想通了执行顺序: 1 、main中  执行mt.i的时候 , 使用变量i的时候,i必须要先初始化,怎么初始化呢,必须先执行等号右边, 等号右边是要调用 f()方法,执行结束以后,再带着返回值赋值给等号左边,所以全自动执行的 2、静态方法中可以使用成员变量,只要在这个方法中创建这个变量所对应的对象就可以调用使用了 3、为什么要先创建对象,必须要先创建,才能持有这个变量所在的对象的地址,只有知道地址才能引用。*/public class MethodTest{    int i = f();    int j = g(i);int m = 3;    int f(){return 11;}    int g(int n){return n * 11;}    public static void main(String[] args){        MethodTest mt = new MethodTest();       // mt.f();        System.out.println(mt.i);System.out.println(mt.m);     }}



错误代码示范:

import java.awt.*;public class Test2 extends Frame{public Test(String s){super(s);}MenuBar  mb = new MenuBar();Menu m = new Menu("菜单");MenuItem mi = new MenuItem("保存文件");CheckboxMenuItem  cb = new CheckboxMenuItem("复选菜单",true);    public static void main(String[] args){Test ts = new Test("测试窗口");ts.setMenuBar(mb); //静态方法中 没有mb变量的对象的引用ts.mb.add(m);//静态方法中 没有m变量的对象的引用ts.m.add(mi);//以此类推,所以这个代码是错误的ts.m.add(cb);ts.setVisible(true);ts.pack();}}


0 0