首页 > 解决方案 > 创建新对象时,Java 对于一个完整的初学者来说似乎是多余的

问题描述

如果这个问题看起来很愚蠢,我很抱歉,我是一个完整的初学者,Java 构造新对象的方式对我来说似乎是多余的。例如使用矩形包:

import java.awt.Rectangle

Rectangle box = new Rectangle(5,10,20,30)

那么为什么我们要写两次Rectangle呢?只是写

box = new Rectangle(5,10,20,30)

还不够吗?这样写很明显,我的对象将从 Rectangle 构造函数创建

标签: java

解决方案


指定变量的类型和实例化对象的类并不总是多余的。

两者可能不同。

例如,代替你的例子,你可以写

Shape box = new Rectangle(5,10,20,30);

它允许您对接口 ( Shape) 而不是特定的实现 ( Rectangle) 进行编程。

如果您希望变量的类型与您实例化的类相同,则可以var从 Java 10 开始使用:

var box = new Rectangle(5,10,20,30);

除此之外,您必须在声明新变量时告诉编译器。

如果你只是写

box = new Rectangle(5,10,20,30);

编译器期望box变量已经在该语句范围内的某个地方声明。添加变量(或var)的类型让编译器知道这是一个新变量。


推荐阅读