当前位置:  技术问答>java相关

关于程序再类里得执行顺序,我很菜,...送分.!!!!!

    来源: 互联网  发布时间:2015-06-18

    本文导语:  class Egg2 {   protected class Yolk {     public Yolk() {       System.out.println("Egg2.Yolk()");     }     public void f() {       System.out.println("Egg2.Yolk.f()");     }   }   private Yolk y = new Yolk();   public Egg2() {  ...

class Egg2 {
  protected class Yolk {
    public Yolk() {
      System.out.println("Egg2.Yolk()");
    }
    public void f() {
      System.out.println("Egg2.Yolk.f()");
    }
  }
  private Yolk y = new Yolk();
  public Egg2() {
    System.out.println("New Egg2()");
  }
 public static void main(String[] args) {
    Egg2 e2 = new Egg2();
    //e2.g();
  }
} //



我用step看了顺序是这样?
为什么?,java到底是怎么执行的阿


1:main 
2: Egg2 e2 = new Egg2();
3:public Egg2() {
4:private Yolk y = new Yolk()
5:   public Yolk() {
6:  System.out.println("Egg2.Yolk()");
7: private Yolk y = new Yolk();
8: System.out.println("New Egg2()");
9: Egg2 e2 = new Egg2();


为什么是这样的顺序?

|
怎么会不明白?
我给你每步都详细说一下!!!

1:main 
 //应用程序入口,必定第一个先(如果有)入口,
  //接着执行main里面的内容
2: Egg2 e2 = new Egg2();
 //实例化当前一个Egg2对象,实例化一个class对象时,
  //首先执行的是符合实例的构造器(此处是Egg2()),
  //在运行构造器之前,看看有无此类中的公共的变量定义
 //(此处即private Yolk y = new Yolk())
3:public Egg2() {
 //构造器(所上所说,如果class里面有几个构造器,
 //那么执行的就是符合实例化时输入参数的那个)
 //此时实际上构造器内部并未开始执行,它需要先判断类中有无
 //公共的变量定义(见第2步说明)
4:private Yolk y = new Yolk()
  //存在私有变量定义,则执行。
 //此处实例化一个对象Yolk,Yolk是个内部类
 //所有相关执行顺序同第二步时( Egg2 e2 = new Egg2();)
5:   public Yolk() {
 //构造器,此内部类中无公共变量定义,故直接执行构造器
6:  System.out.println("Egg2.Yolk()");
 //执行
7: private Yolk y = new Yolk();
 //回到外部调用步骤所在,并非从新执行
  //此时第3步的变量判断才算完成,再执行构造器方法
8: System.out.println("New Egg2()");
 //构造器执行
9: Egg2 e2 = new Egg2();
 //回到外部调用步骤所在,并非从新执行
 //此时第2步的实例化才算完成,回到main(),继续执行下面的步骤
 //例子中是退出系统

|
oop当然要有构造器啊。找本think in java的电子版看一下把。这个讲的很系统,很清楚。

|
也可以不用构建器的,系统会给一个默认的给你

|
我也建议你看一下thinking in java
public egg() {}的确是构造

你的问题都是最基本的知识,建议你多看看书吧


|
执行顺序是这样的:
static数据初始化,例如:Static int i=2;
自动变量初始化,例如:int i;
指定变量初始化,例如:int i=2;
构建器初始化,也就是构造函数初始化。
搞清楚顺序就行了!

|
up

|
points

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下通过crond实现自动执行程序
  • 怎么在一个程序的执行过程中中止执行它?比如一个按钮的响应程序中,执行一半中止??20分!!!
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 如何在程序中执行另外一个程序,并且当前进程依然执行?
  • 先 fork 子进程然后 execl 另一个可执行程序, 如何得到这个可执行程序结束的返回值?
  • 怎么在java程序中执行系统命令或其他可执行程序(像批处理一样)?
  • 为什么执行完execlp函数后程序就退出了,怎样才能让程序继续执行后面的代码
  • 为什么在图形界面下执行一个可执行程序,老是说找不到该程序,而在字符界面下却ok?
  • 在一个终端运行一个执行时间很长的程序中如何让这个程序切换到后台执行?
  • 请教可执行程序的执行问题
  • 执行当前目录下可执行程序时前面必须要加上./才可以,如何解决?
  • 如何在LINUX中在系统启动后自动执行一个执行一个程序?
  • shell 编程 执行shell新建多个终端 并执行程序
  • 直到线程执行完后,才让程序继续执行下去,怎么实现??
  • 在C程序里面执行unix的命令的时候怎么获取执行的结果了?
  • 可执行程序在开发板上的执行
  • 很菜的问题——Linux(RedHat8)下的齿轮图标程序如何执行,是什么shell命令可以执行它?
  • QT的应用程序中如何获取程序执行的路径?
  • 如何执行打在一个包中的可执行程序?
  • 如何让java调用外部程序,并且不等待外部程序执行完毕,直接返回?
  • 怎么让一个程序在后台运行而不影响其他的程序的执行?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 在docker容器中通过apt-get安装新的程序
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3