将新对象作为参数传递给java

时间:2017-11-03 10:47:04

标签: java object constructor instance

我正在学习这个讲座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中的讲义类,对象,参数,构造函数和属性 问候。

3 个答案:

答案 0 :(得分:0)

您不需要汽车对象的名称。

这会创建一个对象

new String("car1.png");

Object存在并可以传递给Constructor。

这会在新对象上创建和指针

Car nameOfCar = new Car("car55.jpg");

答案 1 :(得分:0)

实际上这段代码没什么问题。

当您使用params调用构造函数或方法时,您应该做的就是将parameterstypes一起传递,无论它们是变量还是新实例,他们只需要有效 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()生成的实例,并且垃圾收集器将无法识别。