public class Demo05_Var
{
static int a =10;
static int b =20;
public static void main(String[] args)
{
int sum = getSum();
System.out.println(sum);
int sum_0 = getSum(3,4);
System.out.println(sum_0);
}
public static int getSum(int a ,int b) //方法1
{
return a+b;
}
public static int getSum() //方法2
{
return a+b;
}
}
可打印的结果是 30 ,7;
一开始还以为在调用方法1时对成员变量进行了修改。为了判定方法1是否对成员变量进行了修改,于是在调用
方法1后,有加了句调用方法2,代码如下:
public class Demo05_Var
{
static int a =10;
static int b =20;
public static void main(String[] args)
{
int sum = getSum();
int sum_0 = getSum(3,4);
int sum_1 = getSum();
首先,楼主你并没有在方法一中对成员变量进行任何操作(重新赋值),我举个例子来回答楼主疑问
class Student {
int age = 20;
void speak() {
int age = 25;
System.out.println("大家好,我今年" + age + "岁!");
}
}
如果某个方法中定义的局部变量与类中成员变量同名,方法中访问的是局部变量,而非成员变量,就近原则.也就是说当有另外的程序来调用speak()方法时,输出是25,不是20.