java-JAVA新手求教一段代码的解释

问题描述

JAVA新手求教一段代码的解释

class StaticSuper{
static{
System.out.println("super static block")
}
StaticSuper{
System.out.println("super constructor");
}
}

public class StaticTests extends StaticSuper{
static int rand;
static{
rand=(int)(Math.random()*6);
}

StaticTests(){
System.out.println("constructor");
}

publci static void main(String[] args){
System.out.pringln("in main");
StacticTest st =new StacticTests();
}
}

上面这段的输出顺讯是这样的
super static block
static block 3
in main super constructor
constructor

在下小白。。谁能帮忙解释一下为什么是这个输出顺序

另外
像这种,是什么意思?是方法?构造函数?还是啥意思,为啥没有()符号
StaticSuper{
System.out.println("super constructor");
}

解决方案

首先:按照你的代码,运行结果应该是:
super static block
in main
super constructor
constructor
然后,你代码里面有许多错误,其中最大的就是你的构造方法没有打括号,你就不用为没有()疑惑了,是你没有打。

然后说下结果的原因吧,
1.静态方法块是唯一一个可以在main方法执行的前执行的代码块
2.当实例化子类时,会先执行父类的构造方法,然后执行子类的构造方法。
了解上面的知识点 你就能很好的理解这段程序了。

解决方案二:

一段分页代码PaginationSupport.java
java调用shell的一段代码
java生成静态html的一段代码

解决方案三:

 你这输出不知道怎么来的,不对
 第一个应该是int main,然后先父类static,再子类static,父类构造函数,子类构造函数

 1.父类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
2.子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
3. 父类的实例成员和实例初始化块,按在代码中出现的顺序依次执行。
4.执行父类的构造方法。
5.子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。
6.执行子类的构造方法。

StaticSuper{
System.out.println("super constructor");
}少了括号吧,构造函数
StaticSuper(){
System.out.println("super constructor");
}
时间: 2024-11-08 18:59:21

java-JAVA新手求教一段代码的解释的相关文章

java中动态执行一段代码

动态|执行 动态的执行一段简单代码,采用生成java文件,调用javac编译,反射执行的方式. 只是一个简单测试,有些地方有待完善. 代码如下 -------------------------------------------------------------------------------- import java.io.*; /** * 动态执行一段代码(生成文件->编译->执行) * @author kingfish * @version 1.0 */public class

java ee中的一段代码:

问题描述 java ee中的一段代码: for (Teacher teacher : teachers) { teacher.setEditable(false); 解决方案 foreach就是一种特殊for循环,foreach自动遍历每一个元素,无法根据索引指定某个特定元素.格式是for(元素类型 元素变量:遍历对象){--},例如: String[] hobbys = {"read","sing","dance"}; for(String h

java-初学Java,想知道这段代码哪里出错了

问题描述 初学Java,想知道这段代码哪里出错了 package text; public class text1 { int a; int b; public void print() { System.out.println("a="+a+",b="+b); } } class text2 { public static void main(String[] args) { text1 x=new text2(); x.a=111; x.b=222; x.pri

结构中一段代码的解释

问题描述 结构中一段代码的解释 如图,写了一个结构的代码,我想问下,光标选中的那一段是什么意思? 解决方案 构造函数,结构体也可以和类一样包含构造函数. 你可以用 book b = new book(id, 作者, title, ...) 创建一个实例,不需要手工一个字段一个字段赋值. 解决方案二: 你可以理解为初始化函数

asp.net-这段代码怎么解释。。

问题描述 这段代码怎么解释.. public static string GetIP() { string result = String.Empty; result = HttpContext.Current.Request.ServerVariables[""HTTP_X_FORWARDED_FOR""]; if (string.IsNullOrEmpty(result)) { result = HttpContext.Current.Request.Serve

关于java问题-新手求教大神:用java实现

问题描述 新手求教大神:用java实现 输入多对空格分开的两个数a,b,输出a+b的和,每一对数据的和占一行 解决方案 我的应该符合了 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Test { public static void main(String[] args) thro

关于Java连接Ibatis的一段代码

问题描述 具体的功能就是利用ID查询该ID所对应的相关信息BbsInfoVO 里有 int bbsID; String bbsContent; String bbsMessager; Date bbsMessageTime; String bbsMessageType;我想用vo = bbsInfoBO.querybbsInfoByID(bbsID);其中 vo 是BbsInfoVO生成的一个实例其中BO层的函数是public BbsInfoVO querybbsInfoByID(int bbs

异常处理的代码,求解释下这段代码,拜托了

问题描述 异常处理的代码,求解释下这段代码,拜托了 异常处理应该是 try-catch-finally;这段代码只有try-finally,什么情况?怎么运行?怎么处理异常的?万分感谢 `Session sess = this.getSessionFactory().openSession(); try { return (GongWenLeiBie) sess.get(GongWenLeiBie.class id); } finally { sess.close(); } 解决方案 求这段代码

ava基础 代码错误-Java新手,求大神帮小弟看看这段代码哪里错了,多谢!!!

问题描述 Java新手,求大神帮小弟看看这段代码哪里错了,多谢!!! class Student { //姓名 private String name; //年龄 private int age; //构造方法 public Student(){ } public Student(String name, int age){ this.name = name; this.age = age; } public String getName(){ return name; } public voi