java在point类中添加方法,扩展Java Point类以查找中点

Im studying for an upcoming exam and am working at sample problems, in particular the following one:

Add to class Point below an instance method called midpoint which returns an object of type Point representing the midpoint of two points, where one of the points is supplied as a parameter and the other is the current point (i.e. the point provided by the local instance variables). Note that midpoint returns a new Point object. Making good use of class Point, write a program which reads two points and prints their midpoint. The input consists of two lines where each line contains the x- and y-coordinates of a point. An example of input/output follows, with input indicated by bolding:

Enter two points

2.1 3.2

3.0 2.8

The midpoint is (2.55,3.0)

My code for the point class is as follows and seems to be ok (feel free to point out any errors or improvements):

class Point {

private double x, y; // coordinates

Point(double x0, double y0){ // all-args constructor

x = x0; y = y0;

}

Point(){}; // no-args constructor (defaults apply)

void get() {

x = Console.readDouble();

y = Console.readDouble();

}

public Point midPoint(Point p) {

double mx = (p.x + x)/2;

double my = (p.y + y)/2;

return new Point(mx,my);

}

public String toString()

{

return "(" + x + "," + y + ")";

}

}

And where I run into trouble is in actually using my midPoint method in the below code, any advice is appreciated.

import java.util.Scanner;

import java.io.*;

class Midpoint extends Point

{

public static void main (String[] args ) {

Scanner scanner = new Scanner(System.in);

System.out.println("Please enter two points:");

double x1 = scanner.nextDouble();

double y1 = scanner.nextDouble();

double x2 = scanner.nextDouble();

double y2 = scanner.nextDouble();

Point p1 = new Point(x1, y1);

Point p2 = new Point(x2, y2);

p1.get();

return midPoint(p2);

}

}

解决方案

The call to get() method seems unnecessary.

Secondly, call your midPoint using an object(as per the requirement in the question). Hence, it should be:

p1.midPoint(p2);

Finally, since that method returns a Point type, ensure you catch what is returned.

Point p3 = p1.midPoint(p2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值