【问题标题】:Why is my instance variable accessible without an instance?为什么我的实例变量可以在没有实例的情况下访问?
【发布时间】:2020-09-17 10:18:12
【问题描述】:

我对实例变量的理解是,它们是在创建对象时创建的。如果这是真的,那么为什么可以打印变量“数据”?我不应该先创建一个JavaTesting 类的对象吗?

public class JavaTesting 
{
    static int a = 1;
    private int data = 99;

    @Test
    public void f1() 
    {    
        System.out.println("Print a = "+a);
        System.out.println("Print data = "+data);
    }

}

【问题讨论】:

  • f1 是一个实例方法。它已经在一个实例上运行。该实例由 JUnit(或其他)创建。

标签: java static instance-variables


【解决方案1】:

您的方法f1() 不是静态方法。这意味着它只能在实例上调用。调用f1() 的任何方法都可能首先创建JavaTesting 的实例。如果您将 f1() 设为静态,您的 IDE 可能会出现故障并开始发出危险信号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2011-12-07
    • 2013-05-28
    • 2016-12-05
    • 2018-04-02
    相关资源
    最近更新 更多