`

java子类对象的初始化过程(转)

    博客分类:
  • JAVA
阅读更多

具体的顺序如下:

  初始化顺序:父类静态变量—>父类静态代码块—>子类静态变量—>子类静态代码块—>父类非静态变量—>父类非静态代码块—>父类构造方法—>子类非静态变量—>子类非静态代码块—>子类构造方法

 

  class Father{

  //1

  private static int fs=10;

  //2

  static{

  System.out.println("1.父类静态变量fs="+fs);

  System.out.println("2.父类静态代码块");

  }

  //5

  private int ff=20;

  //6

  {

  System.out.println("5.父类非静态变量ff="+ff);

  System.out.println("6.父类非静态代码块");

  }

  //7

  public Father() {

  System.out.println("7.父类的构造方法");

  }

  }

  class Sun extends Father{

  //3

  private static int ss=100;

  //4

  static{

  System.out.println("3.子类静态变量ss="+ss);

  System.out.println("4.子类静态代码块");

  }

  //8

  private int sf=200;

  //9

  {

  System.out.println("8.子类非静态变量sf="+sf);

  System.out.println("9.子类非静态代码块");

  }

  //10

  public Sun() {

  System.out.println("10.子类的构造方法");

  }

  }

  public class Test {

  public static void main(String[] args) {

  new Sun();

  }

  }

  执行结果:

  1.父类静态变量fs=10

  2.父类静态代码块

  3.子类静态变量ss=100

  4.子类静态代码块

  5.父类非静态变量ff=20

  6.父类非静态代码块

  7.父类的构造方法

  8.子类非静态变量sf=200

  9.子类非静态代码块

  10.子类的构造方法

分享到:
评论

相关推荐

    Java面向对象程序设计笔记

    2.4.子类对象的构造和初始化: 11 2.5.方法的覆盖: 11 2.6.各种数据类型之间的相互转换: 12 3.静态成员 13 4. Final关键字: 13 5. 抽象类: 13 6. 接口 14 7. 接口与抽象类的区别: 15 8. 设计...

    实验03 Java面向对象编程1.doc

    ○2在Student类建立构造方法初始化各域的值,并统计学生人数count; ○3创建分别获得各域(学号,姓名,性别和年龄)的public方法,以及分别设置各域(学号,姓名,性别和年龄)值的public方法(即get、set方法);...

    《java面向对象程序设计-继承和多态》教案.doc

    圆点符号用于访问对象的成员,构造函数在创建对象时初始化对象 包可用package 来申明 ,可用import 来导入包 目标 理解继承及其特点 运用JAVA程序实现继承 理解多态及其特点设计 运用JAVA程序实现多态 掌握访问修饰...

    Java语言面向对象上册教程

    14.7 子类对象的初始化过程 83 14.8 super用法 95 14.9 方法重写 96 14.10 抽象方法/抽象类 99 14.11 final的用法 108 14.12 租赁系统 111 14.13 继承的本质 121 14.14 多态性 121 15. 内部类/匿名内部类 135 16. ...

    java继承类实例

    自己设计的一个程序,展现有继承结构的子类对象的初始化过程(包含构造方法、初始化值、父类构造方法、父类的初始化值的环节)

    实验04 Java面向对象编程2.doc

    //创建子类对象 System.out.println(s.toString()); //显示s的个人信息,调用继承父类的toString方法 s.setScore(80,88,95); //设置三门课的成绩 System.out.printf(“三门课的平均分:%.2f”, s.avg()); //显示...

    Java 基础核心总结 +经典算法大全.rar

    类的初始化 成员初始化 构造器初始化初始化顺序 数组初始化 对象的销毁 对象作用域 this 和 super 访问控制权限继承 多态组合代理 向上转型static final 接口和抽象类接口 抽象类异常 认 识 Exception 什么是 ...

    Java对象与内存控制

    从内存运行的角度分析面向对象中类、对象的细节,包括Java对类变量、实例变量的初始化细节,内存中子类实例的实例变量的存储以及程序如何访问它们,父、子类的类变量的存储以及程序如何访问它们。

    Java开发技术大全(500个源代码).

    errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper...

    常见JAVA基础_4

    1。Java中的继承有几种类型?试举例说明。...试说明父类对象和子类对象的转换规则。 8。什么叫做默认构造函数? 9。在什么时候需要用到显式字段初始化? 10。如何在一个构造函数中调用另一个构造函数?

    JAVA基础知识精华总结 收藏

    2、 继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。 (3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    创建对象包括声明、实例化和初始化三方面的内容。通常的格式为 : 1. 声明对象 对象声明实际上是给对象命名,也称定义一个实例变量。对象声明的一般格式为: type name 其中,type 是一个类的类名,用它声明的对象将...

    稳稳当当学java之继承(10)

    本人的笔记,关于java基础中继承的内容 包括 1.作业回顾 2.成员变量的初始值 3.对象初始化 4.继承 5.子类对象的实例化过程 6.继承的规则一 7.练习

    疯狂JAVA讲义

    5.3.2 成员变量的初始化和内存中的运行机制 128 5.3.3 局部变量的初始化和内存中的运行机制 130 5.3.4 变量的使用规则 130 5.4 隐藏和封装 132 5.4.1 理解封装 132 5.4.2 使用访问控制符 132 5.4.3 package和...

    建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。

    还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。 编程环境:vs2010,语言:...

    java 程序设计 期中考试.doc

    8.静态初始化器是在其所属的类加载内存时由系统自动调用执行. ( √ ) 9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象. ( × ) 10.只能利用Thread类的...

    【04-面向对象(上)】

    •构造器最大的用处就是在创建对象时执行初始化,系统会默认的进行初始化。 •如果程序员没有Java 类提供任何构造器,则系统会为这个类提供一个无参的构造器。 •一旦程序员提供了自定义的构造器,遇系统不再提供...

    JAVA基础课程讲义

    静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70 如何实现继承? ...

    Java经典面试题.pdf

    静态关键字用于修饰类的成员(方法、变量、代码块),使其在类加载时被初始化,并且可以通过类名直接访问。静态成员属于类本身,而不是类的实例。静态方法无法访问非静态成员。 4.什么是Java的final关键字? final...

    北航网络教育JAVA语言与面向对象程序设计单选题及答案.doc

    JAVA语言与面向对象程序设计单选题 applet的主要方法 在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成主类实例的初始化工作。 A.A. start( ) B. B. stop( ) C. C. init( ) D. D. paint...

Global site tag (gtag.js) - Google Analytics