package pk;class A{
static A a1=new A(111);
public A(int i){
System.out.println("new Father()"+i);
}
{
System.out.println("father block"); //请问这类里的方法名怎么会没
} //啊,而且还运行得了哦,不知
static { //不知道这个是如何理解的,
System.out.println("static father block");//谁能告诉我这个原理,谢
}
}public class Init extends A{
static Init a2=new Init(222);
Init(){
this(12);
System.out.println("new son()");
}
Init(int x){
super(0);
System.out.println("new son(int)");
}
{
System.out.println("son block");
}
static {
System.out.println("static son block");
}
public static void main(String[] args){
new Init();
}
}
static A a1=new A(111);
public A(int i){
System.out.println("new Father()"+i);
}
{
System.out.println("father block"); //请问这类里的方法名怎么会没
} //啊,而且还运行得了哦,不知
static { //不知道这个是如何理解的,
System.out.println("static father block");//谁能告诉我这个原理,谢
}
}public class Init extends A{
static Init a2=new Init(222);
Init(){
this(12);
System.out.println("new son()");
}
Init(int x){
super(0);
System.out.println("new son(int)");
}
{
System.out.println("son block");
}
static {
System.out.println("static son block");
}
public static void main(String[] args){
new Init();
}
}
解决方案 »
- 自己做的一个JAVA MP3播放器,但是老提示找不到文件,请大神帮帮忙,好人一生平安!~
- 报的貌似是oracle数据库之类的错误,不知道是什么原因,后台不报错,jsp页面报错,求高手指导
- java 坦克
- 连接数据库异常 自己琢磨了一小时无法解决 请教高手
- java中如何实现ftp的功能?
- 在java里画面启动以后如何获得该画面的句柄?100分!
- 求救!急急急!!!help me!
- 帮忙看看这是个什么错误啊?
- 关于连接池的问题:我不知道数据库连接池在那个包里面,我在JDK1.4的API手册中找不到?
- 请问各位大虾那里有好一点的关于design pattern的网站/论坛!
- 如何在垃圾收集器收集时降对象打印出来
- 我的登录验证过滤器(LoginFilter)发生死循环
System.out.println("father block"); //请问这类里的方法名怎么会没
} //啊,而且还运行得了哦,不知
static { //不知道这个是如何理解的,
System.out.println("static father block");//谁能告诉我这个原理,谢
}
}哇~确实奇怪,没有类名的类,还没见过。。
所以
{
System.out.println("father block"); //请问这类里的方法名怎么会没
} //啊,而且还运行得了哦,不知
static { //不知道这个是如何理解的,
System.out.println("static father block");//谁能告诉我这个原理,谢
}
应该差不多一样吧.
public A(int i){
System.out.println("new Father()"+i);
}
{
System.out.println("father block"); //请问这类里的方法名怎么会没
} //这个叫显式初始化块.是在类构造函数之前调用的
static { //不知道这个是如何理解的,
System.out.println("static father block");//谁能告诉我这个原理,谢
}
//这个叫静态初始化块,是在类加载的时候调用的,而且只调用一次.什么叫类加载和什么叫实例化自己要想清楚哦~}
经典题:一个没有main函数的helloworld
class Test{
static {
System.out.println("Hello Wrold!!");
System.exit(0);
}基础要打好啊~这些都没见过怎么考试哦??
System.out.println("father block"); //请问这类里的方法名怎么会没
}
这不是方法,是一个代码块
static { //不知道这个是如何理解的,
System.out.println("static father block");//谁能告诉我这个原理,谢
}
这就是个静态代码块咯
1 A类的静态调用
2 Init类的静态调用
3 Init实例的初始化具体输出大致应如下:
father block //1。 A类的静态调用:初始化A的静态变量a1。调用具体的构造函数动作之前先调用对象方法区和变量初始化代码。
new Father()111 //调用a1的构造代码。
static father block //A的其它静态方法区
father block //2。 Init类的静态调用:初始化Init的静态变量a2。先以super(0)调用父类构造函数,调用父类具体构造函数动作之前先调用父类对象方法区
new Father()0 //super(0)调用的父类构造函数
son block //调用子类具体构造函数动作之前先调用子类对象方法区
new son(int) //a2的子类构造动作
static son block //Init的其它静态方法区
father block //3。 Init实例的初始化:初始化Init的变量前。先以super(0)调用父类构造函数,调用父类具体构造函数动作之前先调用父类对象方法区
new Father()0 //super(0)调用的父类构造函数
son block //调用子类具体构造函数动作之前先调用子类对象方法区
new son(int) //Init(int x)中子类构造动作
new son() //Init()中子类构造动作
{
System.out.println("father block 0 " ); //请问这类里的方法名怎么会没啊,而且还运行得了哦,不知
}
static {
System.out.println("static father block 0");
}
static A a1 = new A(111); public A(int i) {
System.out.println("new Father()" + i);
} {
System.out.println("father block"); //请问这类里的方法名怎么会没啊,而且还运行得了哦,不知
}
static {
System.out.println("static father block ");
}}
public class Init extends A {
String s = "".concat("str");
{
System.out.println("son block 0" );
}
static {
System.out.println("static son block 0");
}
static Init a2 = new Init(222); Init() {
this(12);
System.out.println("new son() " + 12);
} Init(int x) {
super(x);
System.out.println("new son(int)" + x);
} {
System.out.println("son block" );
}
static {
System.out.println("static son block");
} public static void main(String[] args) {
Init a3 = new Init();
}
}输出结果如下:
static father block 0
father block 0
father block
new Father()111
static father block
static son block 0
father block 0
father block
new Father()222
son block 0
son block
new son(int)222
static son block
father block 0
father block
new Father()12
son block 0
son block
new son(int)12
new son() 12