关于JAVA中this的应用
发布网友
发布时间:2022-03-23 00:04
我来回答
共5个回答
热心网友
时间:2022-03-23 01:33
this.a →private int a;
this.b →private int b;
因为类成员变量有a,b,这个方法中传有参数a,b。用this表示的是类成员变量a,不用this表示此方法传过来的参数a
不用this也可以,但是参数名得变,如下:
interface A
{
void show();
}
interface B
{
void add(int a,int b);
}
class C implements A,B
{
private int a,b;
public void show()
{
System.out.println(a+b);
}
public void add(int c,int d)
{
a = c
b = d;
}
class D
{
public static void main(String[] args)
{
C c=new C();
c.add(4,2);
c.show();//通过该函数打印以上两个数的和。
}
}
热心网友
时间:2022-03-23 02:51
您好,提问者:
来看一个例子:
public class Hello{
private String name;
public Hello(String name){
name = name; //应该是 this.name = name;
}
public static void main(String[] args){
Hello h1 = new Hello("asd"); //构造方法传值
Hello h2 = new Hello("dsa"); //构造方法传值
System.out.println(h1.name); //没用this输出的是null
System.out.println(h2.name); //没用this输出的是null
//如果把下面代码改为:
/*public Hello(String names){
name = names //这个时候输出就是asd dsa
}*/
//1、也就说this关键是跟随new对象走的。
//2、this关键字用于区分类属性与方法局部变量。
}
}
热心网友
时间:2022-03-23 04:26
答案是不可以.
public void add(int a,int b)
{
this.a = a; //a=a; 毫无作用只是给把局部变量自己的值付给他自己
this.b = b;
}
如果你改成 a = a; b = b; 编译器会提示*warning "The assignment to variable b has no effect"
因为你的class 私有变量和add 中的参数 取了相同的名字, 但是在add中他如果你不加this 他就会把你的a,b当做你传入的参数.
热心网友
时间:2022-03-23 06:17
可以。不过最好加上this,可以让你更好的理解代码。如果你的传参名称不是a、b,那无所谓,但是你的传参名称是a、b,所以必须用this来区分一下
热心网友
时间:2022-03-23 08:25
当你定义了private的时候你已经不能调用a,b因为它已经被私有了,所以要用this来调用