java中定义一个对象时是否将类的所有属性和方法都执行一遍

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:23:16
class Bowl {
Bowl(int marker) {
System.out.println("Bowl(" + marker + ")");
}
void f(int marker) {
System.out.println("f(" + marker + ")"); }
}
class Table {
static Bowl b1 = new Bowl(1);
Table() {
System.out.println("Table()");
b2.f(1);
}
void f2(int marker) {
System.out.println("f2(" + marker + ")"); }
static Bowl b2 = new Bowl(2);
}
class Cupboard {
Bowl b3 = new Bowl(3);
static Bowl b4 = new Bowl(4);
Cupboard() {
System.out.println("Cupboard()");
b4.f(2);
}
void f3(int marker) {
System.out.println("f3("
+ marker + ")");
}
static Bowl b5 = new Bowl(5);
}
public class StaticInitialization {
public static void main(String[] args) {

创建对象时候只执行构造方法里面的全部代码
输出结果是:Bowl(1) //java程序执行时 无论是否创建对象 类变量(static)都被加载到内存中
Bowl(2)
Table()
f(1)
Bowl(4)
Bowl(5)
Bowl(3)
Cupboard()
f(2)
Creating new Cupboard() in main
Bowl(3)
Cupboard()
f(2)
Creating new Cupboard() in main
Bowl(3)
Cupboard()
f(2)
f2(1)
f3(1)

这样写就要看的构造方法写的什么
创建对象时候只执行构造方法里面的全部代码
其他方法 字段 是不执行的

创建对象时候只执行构造方法里面的全部代码