java static变量区别(局部变量与全局变量)

120 阅读1分钟

区分static内变量与非static变量。使用this.age为非static变量,修改了public int age的值

package zh.codegym.task.task04.task0401;

/* 
这个年龄不适合我...
*/

public class Solution {

    public static void main(String[] args) {
        Person person = new Person();
        System.out.println("年龄:" + person.age);
        person.adjustAge(person.age);
        System.out.println("调整后的年龄:" + person.age);
    }

    public static class Person {
        public int age = 20;

        /**
         * Requirements:
         * 1. 该程序应在屏幕上显示文本。
         * 2. Person 类应该包含一个名为 age 的 public int 字段。+
         * 3. Person 类的 adjustAge 方法应在屏幕上显示文本。
         * 4. Person 类的 AdjustAge 方法只能包含一个名为 age 的 int 参数,并且该方法必须为 void。
         * 5. main 方法只能调用一次 adjustAge 方法。+
         * 6. Person 类的 adjustAge 方法应将 Person 的 age 增加 20。
         * @param age
         */
        public void adjustAge(int age) {
            /**
             * 对非静态变量赋值 this.age
             */
            this.age = age + 20;
            System.out.println("adjustAge() 中的年龄为 " + age);
        }
    }
}

输出
年龄:20
adjustAge() 中的年龄为 20
调整后的年龄:40

类.变量获取与this.变量获取方法的区别
Apple.applePrice

package zh.codegym.task.task04.task0402;

/* 
苹果的价格
计算苹果的总费用。
苹果的总费用与 public static int applePrice 相对应。
Requirements:
1. 该程序应在屏幕上显示文本。
2. Apple 类的 addPrice 方法不应在屏幕上显示文本。
3. Apple 类的 applePrice 变量必须是初始化为零的 static int。
4. main 方法只能调用两次 addPrice 方法。
5. Apple 类的 addPrice 方法应将传入值加到苹果的价格上。
*/

public class Solution {

    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=Apple.applePrice+applePrice;
        }
    }
}

总结
非static用this.变量名
static用类名.变量名