代码之家  ›  专栏  ›  技术社区  ›  Mohamed

在java中将新对象作为参数传递给另一个新对象

  •  -3
  • Mohamed  · 技术社区  · 7 年前

    我在学习这个讲座 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 回复  |  直到 7 年前
        1
  •  0
  •   cнŝdk    7 年前

    实际上,这个代码没有错。

    当您使用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("") 返回a 一串 因此,这里的构造函数调用很好,因为参数类型得到了尊重。

    你打电话的时候也是一样 addObject(car1, 50, 50); ,不需要变量 50 价值观

        2
  •  0
  •   pwain    7 年前

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

    这将创建一个对象

    new String("car1.png");
    

    这将创建并指向一个新对象

    Car nameOfCar = new Car("car55.jpg");
    
        3
  •  0
  •   AxelH    7 年前

    让我们先用一个简单的例子,使用一些数值运算。

    什么代码是正确的:

    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()