Scala定义一个Point类和它的伴生对象,要求不使用new,而是用Point(3,4)创建对象,并求横纵坐标之和。
时间: 2024-05-07 08:16:46 浏览: 16
好的,让我来回答你的问题。
首先我们定义一个Point类:
```scala
class Point(val x: Int, val y: Int) {
def +(other: Point): Point = Point(x + other.x, y + other.y)
override def toString: String = s"($x, $y)"
}
object Point {
def apply(x: Int, y: Int): Point = new Point(x, y)
}
```
在这个类中,有两个参数x和y分别表示横坐标和纵坐标。我们还定义了一个+方法,用于计算两个Point对象的坐标之和。在伴生对象中,我们定义了一个apply方法,用于创建Point对象。
现在我们可以像下面这样使用Point类来求横纵坐标之和:
```scala
val p1 = Point(3, 4)
val p2 = Point(5, 6)
val p3 = p1 + p2
println(p3) // 输出 (8, 10)
```
在这里,我们使用了伴生对象中的apply方法来创建了p1和p2两个Point对象,然后使用+方法计算得到了p3,其横纵坐标之和分别为8和10。
希望我的回答能够帮到你,如果你还有其他问题,随时可以问我。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![dll](https://img-home.csdnimg.cn/images/20210720083646.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![sh](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)