区分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用类名.变量名