作业测试总结
一、
点击查看代码
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); // 传递对象引用
}
}