/*
我想通了执行顺序:
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();
}
}