m0_62667564 2022-11-26 11:29 采纳率: 84.6%
浏览 6
已结题

Java类与对象 this的用法

见以下代码

public class Main {
 public static void main(String[] args){
        Test b = new Test();
        Scanner scanner = new Scanner(System.in);
        double x = scanner.nextDouble();
        double y = scanner.nextDouble();
        Test a = new Test(x,y);
        System.out.println(a.method(b));
    }
}

public class Test {
    private double x;
    private double y;
    public Test(){
    }
    public  Test(double x,double y){
        this.x=x;
        this.y=y;
    }
    public double getX() {
        return x;
    }
    public double getY() {
        return y;
    }
    public double method(Test b){
        return (this.x-b.getX())+(this.y-b.getY());
    }
}

(this.x-b.getX())+(this.y-b.getY())是什么意思·?这里的this是指代什么?为什么this.x与this.y和a.x和a.y的值一样

如果传入两个对象,如下:

System.out.println(a.method(a,b));

public double method(Test a,Test b){
return (a.getX()-b.getX())+(a.getY()-b.getY());
}

为什么不用getter方法一样可以,不会报错呢?

而且,把a.method(a,b)改成b.method(a,b)也可以,这又是为什么?

  • 写回答

4条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 12月4日
      • 已采纳回答 11月26日
      • 创建了问题 11月26日

      悬赏问题

      • ¥20 Django网页部署到服务器后不能post请求
      • ¥15 编写java代码,拷贝特定包下的文件到指定路径,禁止使用IO流读写操作
      • ¥50 pyinstaller 打包问题
      • ¥15 无法使用cnssc调取网页数据
      • ¥15 Pycharm安装en_core_web_sm失败出现Could not find a version that satisfies the requirement spacy报错
      • ¥15 Python社区划分
      • ¥15 mrcp发现语音丢包
      • ¥15 vue3如何改变svg字体大小,以及子组件如何改变父组件背景色
      • ¥15 ABAQUS简单的带传动系统运转不了
      • ¥15 关于git actions自动部署的问题