l类与对象课后作业

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+"个对象!");

}

}

时间: 2024-10-25 20:51:24

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

Java类和对象课后作业

1. public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Foo obj1=new Foo(); Foo onj2=new Foo(); System.out.println(obj1==obj2); } } class Foo{ int value=100; } 截图: 总结: 当"=="施加于原始数据类

类与对象课后作业

1.查询"你已经创建了多少个对象?" 源代码: 1 public class How { 2 public static void main(String[] args) { 3 a1 b1 = new a1(); 4 a1 b2 = new a1(); 5 a1 b3 = new a1(); 6 //我已经创建了3个对象,接下来调用a1类的静态变量查询创建了多少对象 7 System.out.println("我已经创建的对象个数为: "+a1.value); 8

类和对象课后作业

  1. 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.fi

类与对象课后作业第一题

public class Test { private int id; private String name; private static long count; private final static ThreadLocal tl=new ThreadLocal(); public Test() { super(); count++; tl.set(count); } public long getCount(){ return (Long)tl.get(); } public stat

类与对象的作业

(1)请依据代码的输出结果,自行总结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);

论团队(类与对象邮箱作业再次提交)

大家众所周知,一个项目的完成需要团队的努力,团队是至少以三个人为规模的.首先一个人算不上团队,只能称之为个体,两个人则相互支持,三个人便是团队,这样的团队有其基本的特性,主从监督和责任.当然并不是说一个人不能成功,有很多并非团队成功的案例,例如王江民先生一个人创造出kv100,kv200反病毒软件.两个人相互支撑也是可以成功的例如:周辉和刘杰先生创造出av95反病毒软件.但现在的项目一般都需要团队共同完成.既然是团队就需要领导,这个领导不需要像程咬金一样的牛人,但必须像李离一样具有死士的精神,项

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

一: 1.源代码 //MAO2015.10.6 //foo class Foo { int value; public Foo(int initValue) { value = initValue; } } public class Test2 { public static void main(String[] args) { Foo obj1 = new Foo(2); } } 2.截图 3.总结 如果一个类提供自定义的构造方法,导致系统不再提供默认构造方法. 二: 1.源代码 //mao2

Java类与对象的课后练习

Java类与对象的课后练习编程题(java2实用教程P111) 这章内容自学完了,在做教材课后其他练习题的时候(只要自己仔细)都没啥问题,但在做最后一道上机编程题的时候问题出现了,在阅读题目的时候自己能感受到的是这道题不难(的确也不难),我也很快写了出来,但运行程序的时候,结果一直不正确,最后改来改去都不对,思路是对的,分步执行的时候也感觉是有个地方出了问题但就是揪不出来,最后又把课本的前面的例子反复的看对比,最后找到了问题: System.out.println("cpu的速度:"+

Java作业03 (动手动脑和课后作业1.使用下面定义的类,以下代码输出结果是什么?)

1.使用下面定义的类,以下代码输出结果是什么? 输出结果: 请依据代码的输出结果,自行总结Java字段初始化的规律. Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰. 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面” 执行类的构造函数:类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行.因此,适合于封装那些“对象创建时必须执行的代码”. 2.