Java 这个类中有多少个对象?

Java 这个类中有多少个对象?,java,Java,你能告诉我这个类有多少个对象吗?是()方法还是整数对象?我不明白是否有静态方法,变量,我们不需要对象来调用它们,但如何调用呢?是吗?这是什么意思如果运行代码,您将得到 public class A { private static int a=0; private static A a() { a++; return new A(); } public static void main(String[] args) {

你能告诉我这个类有多少个对象吗?是()方法还是整数对象?我不明白是否有静态方法,变量,我们不需要对象来调用它们,但如何调用呢?是吗?这是什么意思

如果运行代码,您将得到

public class A {
    private static int a=0;
    private static A a()
    {
        a++;
        return new A();
    }

    public static void main(String[] args) {
    // main method will not be changed
        System.out.println(a);
        System.out.println(a().a);
        System.out.println(a().a().a);
        System.out.println(a().a().a);
    }
}
/*
 * expected output
 * 0
 * 1
 * 3
 * 5
 * 7
即使“
a
”是一个静态变量,您也可以从对象访问它。关于为什么即使声明为
private
也可以访问它,这是可能的,因为您试图从
main
方法中的同一个类访问它

始终允许您为
方法
变量
声明相同的名称,因此在您的案例中,“
a
”作为变量和方法。如果您希望获得预期的输出,只需按以下方式更改代码

0
1
3
5

静态方法和非静态方法的一个区别是,您可以创建它的对象,并且每个对象都包含唯一的数据。静态方法不允许您这样做,但您可以直接调用它的方法(它包含的方法) 这种静态方法不能像非静态方法的对象那样保存各种数据,但在某些情况下似乎很有用
例如,当您使用一个类来加载数据并根据某些标准对其进行过滤和排序时,您希望使用此数据,因为它在许多地方都存在,所以您不需要创建对象,所以您可以将此类设置为静态的

首先需要1,然后需要3,然后需要5?是的,它们需要。。对象可以存储自己的数据,这些数据可以不同于其他对象,尽管它们是一个类的实例。如果您在这个类之外工作,您将无法像现在这样访问静态和私有变量和方法,但我不能在测试类中调用静态方法吗?当然,您可以这样做。例如,如果我有静态方法我把它们放在一个名为database的类中,我创建了一个名为tester的新类来进行一些测试,我想调用其中的一些方法,我可以通过这一行来实现……database.methodname(signature);
System.out.println(a);
System.out.println(a().a);
System.out.println(a().a().a);
System.out.println(a().a().a);
System.out.println(a().a().a);