为了账号安全,请及时绑定邮箱和手机立即绑定

在修改对象的方法调用后获取原始对象状态

在修改对象的方法调用后获取原始对象状态

倚天杖 2021-09-29 13:51:01
我开始研究 Java 中的 OOP 概念,并尝试为点、线、平面和曲面创建一个基本类,但我创建的方法遇到了问题。public class Punto{  public double x, y;  public Punto(double pX, double pY){      this.x = pX;      this.y = pY;  }  public String puntoTela(){      return "( " + x + " , " + y + " )";  }  public void rotacion(double grado) {      double rad = (grado * Math.PI) / 180;      this.x = (this.x * Math.cos(rad) + this.y * - Math.sin(rad));      this.y = (this.x * Math.sin(rad) + this.y * Math.cos(rad));         } }我的问题是:如果我声明Punto p = new Punto(5, 2)并调用该rotation方法,我将无法回到原始值。public class Ejemplo {   public static void main(String[] args){      Punto p = new Punto(5, 2);       System.out.println(p.puntoTela()); // shows (5, 2)        p.rotacion(45);        System.out.println(p.puntoTela()); // shows (5, 2) after rotatin 90 deg = (2.1, 2.9)        System.out.println(p.x); // 2.1 i want original value of 5    }}我试图为旋转方法创建局部变量,但它不起作用我该怎么办??谢谢!
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

你基本上有两个选择:

  • 创建一个void rotate(double grado)改变对象本身的方法

  • 创建一个方法Punto rotated(double grado),该方法返回一个Point相当于原点旋转一定量的新点

你不能做的是让一个对象同时旋转而不是旋转。


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信