课后作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课后作业相关的知识,希望对你有一定的参考价值。
1.
public MyTestClass(int initValue){ Value=initValue; }
请总结一下,这个方法有哪些“与众不同之处”,你能列出几条?
方法名与类名相同
没有void也没有返回值
2.如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值
public class InitializeBlockDemo { 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=200; } public int field=100; public InitializeBlockClass(int value){ this.field=value; } public InitializeBlockClass(){ } }
由示例程序可知由构造函数决定
3.总结Java字段初始化的规律。
所有类的变量都默认初始化为null
数字类的原始数据类型默认初始化为0
执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
执行类的构造参数
类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。
4.静态初始化块的执行顺序
静态初始化块只执行一次。
创建子类型的对象时,也会导致父类型的静态初始化块的执行。
5.
静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?
请编写代码验证你的想法。
package lizi; public class ceshi { int a = 3; static int b=4; public static void ceshiyi() { System.out.println("非静态变量a=" + new ceshi().a); System.out.println("静态变量b=" + b); } public static void main(String[] args) { ceshi.ceshiyi(); ceish i= new ceshi(); System.out.println("a=" + i.a); } }
由例子可知需进行类的实例化
6.Integer类的装箱和拆箱到底是怎样实现的?
装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 intValue方法实现的.
7.上述神奇代码(StrangeIntegerBehavior.java)输出诡异的结果,原因何在?
integer实现时整型范围为-128到127 第一个未超出范围所以true而第二个超出范围所以false
以上是关于课后作业的主要内容,如果未能解决你的问题,请参考以下文章