library(dplyr)
df1 <- filter(df, Mac1 > 0, Mac2 > 0, Mac3 > 0, Mac4 > 0)
编写package holinheritation2;
import java.util.Scanner;
public class Inheritation2 {
public static void main (String args[]) {
Animal wolf = new Animal();
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
wolf.setName(name);
if (wolf.getName().equalsIgnoreCase("Kobe")) {
System.out.println("You are a wolf called Kobe!");
}
}
}
package holinheritation2;
import java.util.Scanner;
public class Animal {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
`enter code here`}
的目的是什么,如果我在getName方法上返回“ name”而不是“ this.name”,有什么区别?我想我了解this.name = name
,但请您澄清一下。
答案 0 :(得分:0)
写“ this.name = name”的目的是什么
我假设您的意思是setName
。在setName
中,this.name
是实例变量(“字段”),而name
是setName
接受的参数。因此this.name = name
使用参数的值设置实例字段的值。
如果我在getName方法上返回“ name”而不是“ this.name”,有什么区别吗?
否,因为在name
的范围内没有任何getName
参数或局部变量,因此Java编译器知道您的意思是name
实例变量。 (即使不需要,也总是包含this
,或者在不需要时不使用它,这是一种样式选择。)
答案 1 :(得分:0)
在存在阴影的情况下执行此操作,您将name
变量声明了两次,一个在方法内作为参数或局部变量,另一个作为类的成员,在方法变量成员内被参数变量{{1 }},因此要访问它,必须指定name
,它引用成员变量this.name
。
因此,方法name
内的变量指的是参数,其中name
指的是成员变量this.name
。
这样就解决了阴影问题。
name
答案 2 :(得分:0)
name
引用方法中定义的局部变量名称。 this.name
引用该类中设置的变量。
使用此命令是为了使编译器能够区分具有相同名称的变量。
答案 3 :(得分:0)
如果局部变量与实例变量具有相同的名称,则局部变量将隐藏实例变量,并且您必须使用“ this”关键字才能访问隐藏的实例变量。