我正在将一些代码从Java(我对此语言一无所知)移植到C.由于Java是一种类似C语言的事实,我在转换大多数语句方面没有问题。但我不知道代码的某些部分是什么意思。它将java类作为函数调用并作为参数传递:
假设课程为:
public class foo {
public foo(Typex x) { //etc }
}
public class baa {
public baa(Typex x) { //etc }
}
从另一个类中,它被称为:new foo(baa())
这是什么意思?
答案 0 :(得分:2)
它被称为构造函数。见here
public class Foo {
public foo(Typex x) { //etc }
}
public class Baa {
public baa(Typex x) { //etc }
}
Foo f = new Foo(x); // Creates a new instance of Foo.
Baa b = new Baa(x); // Creates a new instance of Baa.
答案 1 :(得分:2)
这是错的! 新foo(baa())
你不能用Java做到这一点,而是你需要做的是
new foo(new baa().bar()) .
这意味着您首先要创建baa的引用(Object)并调用该引用的bar()方法。请记住,Java中的新关键字是从类中创建新引用。它调用类的Constructor方法并为该引用分配内存。
此外,在上面的例子中,它将从bar()方法返回的任何内容作为参数传递给foo类,并依次创建foo类的引用。
这是一个好的开始: [1]:http://docs.oracle.com/javase/tutorial/java/javaOO/index.html
答案 2 :(得分:0)
它是一个构造函数 - 这个小东西使得创建新对象变得更容易。你可以做到
Object Name = new Object(Param1, Param2);
而不是
Object Name = new Object();
Name.Param1 = foo;
Name.Param2 = bar;