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

1.使用下面定义的类,以下代码输出结果是什么?

输出结果:

请依据代码的输出结果,自行总结Java字段初始化的规律。

Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰。

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

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

2.当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。请自行编写示例代码验证以上结论

示例代码:

public class Jicheng {

public static void main(String[] args){

Son a=new Son();

a.show();

}

}

class Father{

String name;

{

name="Father";

}

}

class Son extends Father{

int age=20;

void show()

{

System.out.println("名字"+name);

System.out.println("年龄"+age);

}

}

结果截图:

3.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?请编写代码验证你的想法。

代码

class Exercise{

int a=0;

static int b;

static public int getb(int newb)

{

b=newb;

System.out.println(b);

return b;

}

public int num()

{

int a=1;

return a;

}

}

public class Shi {

public static void main(String[] args){

Exercise e=new Exercise();

e.getb(10);

e.num();

}

}

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

代码:

class Jishu{

private static int a;

public Jishu()

{

a++;

}

public static int get()

{

return a;

}

}

public class DuixiangNum {

public static void main(String[] args){

Jishu j1=new Jishu();

Jishu j2=new Jishu();

System.out.println("创建对象的个数为:"+Jishu.get());

}

}

时间: 2024-08-05 06:57:29

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

JAVA语法基础 动手动脑及课后作业

动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t);  // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //

异常处理---动手动脑及课后作业

动手动脑1:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 源码: import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j=0, k; k=i/j; try { k = i/j; // Causes division-by-zero exception //throw new Exception

第七讲 数组动手动脑和课后作业

[动手动脑1] 数据作为方法参数示例代码 int[] arr= new int[ 24 ]; -- modifyArray( arr ); 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. // PassArray.java // Passing arrays and individual array elements to methods public class PassArray { public static void ma

第四讲动手动脑集课后作业

一.动手动脑 1.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. 源代码: //huzejie20161016//生成指定数目的随机数import java.util.Scanner;public class Suijishu { public static void main(String[] args) { System.out.print("请输入要输出多少个随机数:"); Scanner s = new Scanner(System.in); int n

动手动脑及课后作业02

1.SquareIntTest.java中不用static如何还能使用Square函数 解决方法: 2. 代码: import java.util.Scanner; public class Suiji { public static void main(String[] args) { System.out.print("请输入要输出的随机数个数:"); Scanner s = new Scanner(System.in); int num = s.nextInt(); //生成随机

03_方法(动手动脑和课后作业)

一. MethodOverload.java public class MethodOverload { public static void main(String[] args) { System.out.println("The square of integer 7 is " + square(7)); System.out.println("\nThe square of double 7.5 is " + square(7.5)); } public s

JAVA动手动脑及课后作业

1.查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 运行结果 true true false 原因 1)在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 2)编译器在编译s2一句时,会去掉"+"号,直接把两个字串连接起来得一个字串("Hello").这种优化工作由Java编译器自动完成. 3)当直接使用new关键字创建字符串对象时,虽然值一致(都是"He

02-JAVA语法基础 作业(动手动脑和课后作业)

1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE;   //s和t引用同一个对象? System.out.println(s==t);  //   //是原始数据类型吗? System.out.println(s.getClass().isPrimitive());   /

动手动脑及课后作业

一.1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 2.你能得到什么结论?你掌握了枚举类型的基本用法了吗? 运行结果: 分析结果.结论:枚举类型不属于原始数据类型,是引用类型.每一具体值都引用特定对象.相同值引用同一对象.可以使用“==”直接对比值. 二.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码.补码跟原 码这几个概念,然后编写示例程序,对正数.负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的. 反码: