已经学习了java有短时间,对java执行逻辑不清楚?
一个java程序是由一个公共类,程序的入口为main.
我看到了几种情况:
1、public class jj
{变量
 public main (String arg[])
{
}
public jj{}}
程序从main开始,那前面变量执行不?那构造函数执行不?是不是执行变量,然后main开始。那构造器什么时候用?
2、public class jj
{变量
public jj{} public main (String arg[])
{
}
}
执行时,是不是先变量,然后构造器,在main .
3、当程序申明并付初值时?
class1 v =new class1()
用构造器实例化变量时,是仅仅执行该类的构造器内的程序,还是把该类程序中的变量,构造器和
main 函数都执行?

解决方案 »

  1.   

    1、public class jj 
    {变量 
    public main (String arg[]) 


    public jj{} } 
    程序从main开始,那前面变量执行不?那构造函数执行不? 
    类加载器加载了含有main方法的类后先执行静态语句块,再初始化属性,在没有出现new关键字前是不调用构造的3、当程序申明并付初值时? 
    class1 v =new class1() 
    用构造器实例化变量时,是仅仅执行该类的构造器内的程序,还是把该类程序中的变量,构造器和 
    main 函数都执行? 
    只执行构造内的代码,如果有父类会先new一个父类
      

  2.   

    多看书
    先静态域代码块,(main函数,如果是启动静态函数)再一般域代码块,再执行new操作
      

  3.   

    请看这段代码,执行顺序为?
    import java.awt.*;
        public class ExGui{
            private Frame f;
            private Button b1;
            private Button b2;
            public static void main(String args[]){
                ExGui that = new ExGui();
                that.go();
        }        public void go(){
                f = new Frame("GUI example");
                f.setLayout(new FlowLayout()); 
                b1 = new Button("Press Me"); 
                 b2 = new Button("Don't Press Me");
                f.add(b1);
                f.add(b2);
                f.pack(); 
                f.setVisible(true);
            }
        }
    问题:
    1此类为何没有构造函数?是不是类不一定需要构造器?如果没有构造器如何初始化?
    2该类程序先从private Frame f开始,还是main
    ;
      

  4.   

    类必须有构造方法。自己不写编译器会自动给你加上一个空的。
    从main开始执行。
    private Frame f这是声明,不是可执行的语句。