java 的初始化规律

执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

执行类的构造函数。

类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”

当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。

请自行编写示例代码验证以上结论。

public class InitializeBlockDemo {

/**   * @param args   */

public static void main(String[] args) {

InitializeBlockClass obj=new InitializeBlockClass();

System.out.println(obj.field);

obj=new InitializeBlockClass(300);

System.out.println(obj.field);

}

}

class InitializeBlockClass{

//下面这句在初始化块之前与之后,会影响到field字段的初始值  //

public int field=100;

{

field=200;

}

public int field=100;

public InitializeBlockClass(int value)

{

this.field=value;

}

public InitializeBlockClass(){

}

}

2请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。

静态初始化块只执行一次。

创建子类型的对象时,也会导致父类型的静态初始化块的执行。

静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

请编写代码验证你的想法。(发表到博客)

public class Ex

{ int i =123; static int Temp;

public static void A()

{ System.out.println(Temp);

} public int B()

{ int x = 100;

return x; }

public static void main(String args[]) {

Ex e = new Ex();

Temp = e.B();

e.A();

}

}

1. 父类static(顺序按照代码书写顺序进行)
2. 子类static(顺序按照代码书写顺序进行)
3. 父类非static域、构造器(顺序按照代码书写顺序进行)
4. 子类非static域、构造器(顺序按照代码书写顺序进行)

3

public class StaticTest {

public static void main(String args [])

{

test b=new test();   b.print();

}

}

class test {

int i=1;

static void print()

{

test a=new test();

System.out.println(a.i);

}

}

4

使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

public class Student{

public static void main(String[] args){

Information a = new Information();

a.OutputInformation();

Information b = new Information();

b.OutputInformation();

} }

class Information{

static int num=0;

Information()

{ num++;

}

public void OutputInformation()

{

System.out.println("你已经创建了"+num+"个对象!");

}

}

l类与对象课后作业的更多相关文章

  1. JAVA类和对象课后作业

    1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?" 代码: //显示类 //YiMingLai 2 ...

  2. 类与对象 CG作业1. 复数类Comple 。

    问题描述]一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性realPart和imagPart分别表示复数的实部和虚部,三个成员函数:initComplex实现复数成员变量的初 ...

  3. JAVA类与对象作业——动手动脑以及课后实验性问题

    一: 1.源代码 //MAO2015.10.6 //foo class Foo { int value; public Foo(int initValue) { value = initValue; ...

  4. String字符串类课后作业

    String动手动脑和课后作业 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 结果: 总结:在Java中,内容相同的字串常量(&quo ...

  5. JAVA04类与对象之课后问题解决

    1.验证ClassAndObjectTest.java(使用自定义类) public class ClassAndObjectTest { public static void main(String ...

  6. Bag类课后作业

    20162316 Bag课后作业 下面小标题都是码云链接 实现代码 import java.util.Arrays; public class Bag implements BagInterface ...

  7. Java第7次作业:造人类(用private封装,用static关键字自己造重载输出方法)什么是面向对象程序设计?什么是类和对象?什么是无参有参构造方法 ?什么是封装?

    什么是面向对象程序设计? 我们称为OOP(Object  Oriented  Programming) 就是非结构化的程序设计 要使用类和对象的方法来进行编程 什么是类,什么是对象 类就是封装了属性和 ...

  8. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

  9. 类和对象:继承 - 零基础入门学习Python038

    类和对象:继承 让编程改变世界 Change the world by program 上节课的课后作业不知道大家完成的怎样?我们试图模拟一个场景,里边有一只乌龟和十条鱼,乌龟通过吃鱼来补充体力,当乌 ...

随机推荐

  1. CF932E Team Work(第二类斯特林数)

    传送门:CF原网 洛谷 题意:给定 $n,k$,求 $\sum\limits^n_{i=1}\dbinom{n}{i}i^k\bmod(10^9+7)$. $1\le n\le 10^9,1\le k ...

  2. FZU 2150 Fire Game (bfs+dfs)

    Problem Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board ...

  3. nuxt.js实战之开发环境配置

    一.创建项目 1.使用如下命令生成项目 vue init nuxt-community/starter-template testPro --testPro为项目名称 2.进入到项目根目录下,使用np ...

  4. Ubuntu中VisualBox无法识别USB设备

    解决方法 安装Oracle VM VirtualBox Extension Pack( https://www.virtualbox.org/wiki/Downloads ) 执行sudo /usr/ ...

  5. windows蜜汁调音

    哈,用的蜂鸣器,我静音了这东西还放. 只能调的很垃圾,但是很好玩. #include<cstdio> #include<windows.h> using namespace s ...

  6. [luogu4309][最长上升子序列]

    题目链接 思路 因为这些数字是从小到大加进去的,所以以当前数字结尾的最长上升子序列可以从前面位置的任何一个数字转移过来.所以只要能知道每个数字最终位于哪个位置就行了. 没想到出了treap还有什么办法 ...

  7. [luogu2286][宠物收养所]

    题目链接 思路 比较裸的一道平衡树的题.用一个变量S来表示当前树的情况,当S为负数时树内为宠物,当S为正数时树内为人.然后每次分情况讨论一下.如果树为空或者是与来的东西(人或宠物)与树内存的相同.那么 ...

  8. Django(九)admin相关知识

    https://www.cnblogs.com/yuanchenqi/articles/6083427.htm https://www.cnblogs.com/haiyan123/p/8034430. ...

  9. TensorFlow车牌识别实践(2)

    http://www.cnblogs.com/jackkwok/p/7228021.html 1,运行准备 按照https://github.com/matthewearl/deep-anpr说明的用 ...

  10. SWOT分析法——进行项目管理的高效方法

    SWOT分析法是什么 SWOT分析法,即态势分析法,就是将与研究对象密切相关的各种主要内部优势.劣势和外部的机会和威胁等,通过调查列举出来,并依照矩阵形式排列,然后用系统分析的思想,把各种因素相互匹配 ...