搞不懂这个代码的运行,求助!(JAVA)

这个代码不长,但我搞不清楚为什么“Apple.applePrice = applePrice+Apple.applePrice;”就得出苹果总价,搞不懂他是怎么运行的,请大神指点!

public static void main(String[] args) {
        Apple apple = new Apple();
        apple.addPrice(50);
        Apple apple2 = new Apple();
        apple2.addPrice(100);
        System.out.println("苹果的价格为 " + Apple.applePrice);
    }

    public static class Apple {
        public static int applePrice = 0;

        public static void addPrice(int applePrice) {

           Apple.applePrice = applePrice+Apple.applePrice;
}
}

首先你要搞明白,这个成员方法是用来做相加求和操作的,每一次的调用addPrice方法,Apple.applePrice 会被重新赋值,
新的数值,就是原数值和参数的值相加。

        Apple apple = new Apple();
        apple.addPrice(50);   //  Apple.applePrice ,也就是苹果价格为50元
        Apple apple2 = new Apple();
        apple2.addPrice(100); //再次调用这个方法,苹果总价为 100 + 50 = 150。

重新理解一下这个方法
Apple.applePrice = applePrice+Apple.applePrice;

苹果价格 = 新的参数 + 苹果原来的价格

applePrice是静态变量,静态变量是在程序加载时时就被初始化了,不是在类实例化阶段(new操作)初始化的,所以第一次add完后,价格就是50,当
第二次再new一个Apple去add价格,此时的Apple.applePrice就是50,所以最终是150.

applePrice属性是静态的,无论创建几个Apply他们的applePrice都是同一个,所以你不管用哪个实例进行操作,他们修改的都是同个变量

这就是new一个Apple对象,调用Apple类里面的静态方法传值进去进行求和计算,Apple.applePrice就是调用该类的静态变量applePrice 。Apple.applePrice = applePrice+Apple.applePrice;这段代码就对是静态变量求和后重新赋值给applePrice,从而实现传入苹果的价格进行累计求和的目的。 System.out.println("苹果的价格为 " + Apple.applePrice);最后输出的 Apple.applePric=0+50+100=150.

在类体中定义的变量分为成员变量和静态变量,由static修饰的变量称为静态变量,没有被static修饰的变量称为成员变量。成员变量其实是属于每一个对象的特殊描述,静态变量是被所有对象所共享的。在内存表现上,对于不同的对象,成员变量将被分配不同的内存空间,而静态变量都分配给相同的一处内存。