作业测试总结

一、

点击查看代码
class Test {
    {
        int field = 200; // 实例初始化块中的局部变量,不会影响类字段的值
    }
    
    public int field = 100; // 类字段初始化为100
    
    public Test(int value) {
        this.field = value; // 构造方法可以重新赋值
    }
    
    public Test() {}
}

public class Main {
    public static void main(String[] args) {
        Test obj = new Test();
        System.out.println(obj.field); // 输出:100
        
        obj = new Test(300);
        System.out.println(obj.field); // 输出:300
    }
}

实例初始化块中的局部变量:

{
int field = 200; // 这是局部变量,不影响类字段的值
}
这里 int field = 200 是在实例初始化块中声明的,它是一个局部变量,不会影响到类字段 field 的值。

类字段的初始化:

public int field = 100;
这是类字段,将其初始化为 100。

构造方法:

public Test(int value) {
this.field = value; // 构造方法可以重新赋值
}
构造方法可以重新为字段 field 赋值,覆盖之前的初始值。

无参构方法:

public Test() {}
无参构造方法不进行字段值的重新赋值,因此字段的值保持为类字段的初始值。
二、
如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)
即:
将对象的引用作为参数传递给静态方法,然后在静态方法中通过该引用来访问实例成员。
代码如下:

点击查看代码
class MyClass {
    int instanceField; // 实例字段

    // 实例方法
    void instanceMethod() {
        System.out.println("Instance method called");
    }
}

public class Main {
    // 静态方法
    public static void staticMethod(MyClass obj) {
        // 通过传入的对象引用访问实例成员
        obj.instanceField = 100;
        obj.instanceMethod();
    }

    public static void main(String[] args) {
        MyClass obj = new MyClass();
        staticMethod(obj); // 传递对象引用
    }
}
posted @ 2024-10-16 21:13  Look_Back  阅读(2)  评论(0编辑  收藏  举报