我正在学习这个讲座Visibility, get/set Methods and Constructors with Greenfoot
作为Java编程简介的一部分:开始使用Java课程编写代码 我只是对这一行感到困惑
public void populateWorld(){
Car car1 = new Car(new String("car1.png"), new String("car2.png"));
Car car2 = new Car(new String("car3.png"), new String("car4.png"));
addObject(car1, 50, 50);
addObject(car2, 50, 550);
}
如何将新对象作为参数传递给car对象而不给它起名字?
提前谢谢 如果你提到一个很好的类似解释,我也将不胜感激 java中的讲义类,对象,参数,构造函数和属性 问候。答案 0 :(得分:0)
您不需要汽车对象的名称。
这会创建一个对象
new String("car1.png");
Object存在并可以传递给Constructor。
这会在新对象上创建和指针
Car nameOfCar = new Car("car55.jpg");
答案 1 :(得分:0)
实际上这段代码没什么问题。
当您使用params调用构造函数或方法时,您应该做的就是将parameters
与types
一起传递,无论它们是变量还是新实例,他们只需要有效 objects
各自预期类型。
所以这里:
Car car1 = new Car(new String("car1.png"), new String("car2.png"));
Car
构造函数需要两个String
作为参数,并且您提供了两个字符串,此代码相当于:
Car car1 = new Car("car1.png", "car2.png");
因为new String("")
返回String
所以构造函数调用在这里很好,因为参数类型是受到尊重的。
当您致电addObject(car1, 50, 50);
时,您也不需要50
值的变量。
答案 2 :(得分:0)
首先使用一个更简单的例子,使用一些数字运算。
什么代码是正确的:
int i = 5 * 3;
或
int a = 5;
int b = 3;
int i = a * b;
两者都是正确的。我们不需要在变量中存储值来使用它。
实例是一样的。您可以直接使用它,而无需在变量中保留其引用。
String s = new Object().toString();
或
Object o = new Object();
String s = o.toString();
我的情况不同的是,在第一个示例中,在该状态之后,无法访问由new Object()
生成的实例,并且垃圾收集器将无法识别。