有时候我们的方法中可能会出现一些与成员变量重名的变量:
//我们希望使用这个方法,来为当前对象设定名字 void setName(String name) { }此时类中定义的变量名称也是name
,那么我们是否可以这样编写呢:
我们来测试一下:
public static void main(String[] args) { Person p = new Person(); p.setName("小明"); System.out.println(p.name); }我们发现,似乎这样做并没有任何的效果,name依然是没有修改的状态。那么当出现重名的时候,因为默认情况下会优先使用作用域最近的变量,我们怎么才能表示要使用的变量是类的成员变量呢?
Person p = new Person(); p.name = "小明"; //我们之前在外面使用时,可以直接通过对象.属性的形式访问到同样的,我们如果想要在方法中访问到当前对象的属性,那么可以使用this
关键字,来明确表示当前类的示例对象本身:
这样就可以修改成功了,当然,如果方法内没有变量出现重名的情况,那么默认情况下可以不使用this
关键字来明确表示当前对象:
我们接着来看方法的重载。
有些时候,参数类型可能会多种多样,我们的方法需要能够同时应对多种情况:
int sum(int a, int b){ return a + b; } public static void main(String[] args) { Person p = new Person(); System.out.println(p.sum(10, 20)); //这里可以正常计算两个整数的和 } 标签:String,void,name,Person,使用,方法,变量,进阶 From: https://www.cnblogs.com/258-333/p/18043393