关键词:
1.动手动脑
如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。而foo类中有一个public foo(int initValue)类,导致系统不能引用默认的构造函数。
2.动手动脑
实例:TextStaticInitialalizeBlock.java:
class Root
{
static{
System.out.println("Root的静态初始化块");
}
{
System.out.println("Root的普通初始化块");
}
public Root()
{
System.out.println("Root的无参数的构造器");
}
}
class Mid extends Root
{
static{
System.out.println("Mid的静态初始化块");
}
{
System.out.println("Mid的普通初始化块");
}
public Mid()
{
System.out.println("Mid的无参数的构造器");
}
public Mid(String msg)
{
//通过this调用同一类中重载的构造器
this();
System.out.println("Mid的带参数构造器,其参数值:" + msg);
}
}
class Leaf extends Mid
{
static{
System.out.println("Leaf的静态初始化块");
}
{
System.out.println("Leaf的普通初始化块");
}
public Leaf()
{
//通过super调用父类中有一个字符串参数的构造器
super("Java初始化顺序演示");
System.out.println("执行Leaf的构造器");
}
}
public class TestStaticInitializeBlock
{
public static void main(String[] args)
{
new Leaf();
}
}
执行结果如下:
从结果可以得出结论:
执行class Leaf extends Mid类中的静态初始化块,先要执行其父类的静态初始化块,最后才执行该类的静态初始化块。
动手动脑三(代码片段)
一、以下代码为何无法编译publicclassTestpublicstaticvoidmain(String[]args)Fooobj1=newFoo();classFoointvalue;publicFoo(intinitVaule)vaule=initVaule;原因:下面自己写的构造方法带有1个参数,但是在新建对象的时候却没有参数,所以无法进行初始化。 ... 查看详情
动手动脑
1.问题:以下代码为何无法通过编译?哪儿出错了? 错误:系统,匹配不到Foo的无参构造方法,但是如果类定义了构造方法Java编译器就不在提供没有参数的“默认构造方法”。只匹配“自己”写到构造方法... 查看详情
动手动脑(代码片段)
1.以下代码为何无法通过编译?哪儿出错了?packagetest;publicclassTestpublicstaticvoidmain(String[]args)Fooobj1=newFoo();classFoointvalue;publicFoo(intinitValue)value=initValue; & 查看详情
动手动脑感想(代码片段)
1.动手动脑:以下代码为什么无法通过编译?哪出错了?publicclassTestpublicstaticvoidmain(String[]args)Fooobj1=newFoo();classFoointvalue;publicFoo(intinitValue)value=initValue;obj1初始化出错,因为Foo类定义的含参的构造函数,不会自动生成无参构造函数... 查看详情
动手动脑(代码片段)
课件中动手动脑3(1)以下代码为何无法通过编译?哪儿出错了?在Foo类中定义的Foo类有一个int类型的实参,但主函数调用的时候没有传参数,所以会报错。 (2)Java字段初始化的规律 测试代码:package包;publicclassmain/***@p... 查看详情
动手动脑(代码片段)
原因:下面自己写的构造方法带有1个参数,但是在新建对象的时候却没有参数,所以无法进行初始化。二,1package统计对象个数;23publicclassInitializeBlockClass45field=200;67publicintfield=100;8publicInitializeBlockClass(intvalue)9this.field=value;1011public... 查看详情
java动手动脑
以下代码为何无法通过编译?哪儿出错了? 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。2.classRoot{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的... 查看详情
第三次动手动脑(代码片段)
1.以下代码为何无法通过编译?哪儿出错了?publicclassTestpublicstaticvoidmain(String[]args)Fooobj1=newFoo();classFoointvalue;publicFoo(intinitValue)value=initValue;错误在于在构造函数时有参数,在调用时没有填写int型的参数。2.根据以下代码的输出结果... 查看详情
java动手动脑3
1.以下代码为何无法通过编译?哪儿出错了?类自己定义了一个有参的构造函数,但没有无参的构造函数。系统不会调用默认的构造函数,而主函数中使用了无参的构造函数,所以产生了错误。2.如果有了初始化也有了构造函数... 查看详情
动手动脑——类与对象
问题一:静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?答:先创建对象,然后用对象调用实例成员。问题二:以下代码输出结果是什么? 答:100&n... 查看详情
第五周课后动手动脑
两者不一样,早期的形式简单点当声明一个对象类型的变量时,实际上并没有创建一个对象,此变量=null。定义一个原始类型的变量时,会马上给其分配内存, 比如以下代码将无法通过编译:  ... 查看详情
类与对象的动手动脑
1.以下代码为何无法通过编译?哪儿出错了?原因:调用的newFoo是函数Foo(),所以括号里面应该有一个int型变量参数,比如写一个1。2.进行实验,根据下列代码的输出结果,自行总结java字段初始化的规律。结果:对此结果的分... 查看详情
类与对象动手动脑
1.以下代码无法通过编译,哪里出错了?原因:因为构造函数Foo()没有进行定义,如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。截图:2..请依据代码的输出结果,自行总结Java字段初始化的规律输出结... 查看详情
动手动脑
[动手动脑]:编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数 代码:packagesuiji;importjava.util.Scanner;publicclassSuiji{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub &n 查看详情
动手动脑-4(代码片段)
package动手动脑;publicclass基类public基类()System.out.println("基类Created.");public基类(Stringstring)System.out.println("基类Created.String:"+string);package动手动脑;publicclass父类extends基类public父类()super("Hell 查看详情
java动手动脑之父子继承
1.构造函数的主要作用是什么?在创建对象时初始化对象,为对象成员变量赋初值。调用时:子类——>父类——>祖类输出时:祖类——>父类——>子类在子类调用构造函数时必须调用父类的构造函数,因为子类的构造器... 查看详情
动手动脑
这个是让我们看下面的代码,让我们发现特别之处的动手动脑。源代码如下://MethodOverload.java//UsingoverloadedmethodspublicclassMethodOverload publicstaticvoidmain(String[]args) System.out.println("Thesquareofinteger7is" 查看详情
动手动脑
动手动脑1publicclassEnumTest publicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubSizes=Size.SMALL;Sizet=Size.LARGE;//s和t引用同一个对象?System.out.println(s= =t); ////是原始数据类型吗?System. 查看详情