0

我正在将一些代码从 Java(我对这种语言一无所知)移植到 C。事实上,Java 是一种类似 C 的语言,我在转换大多数语句时没有问题。但我不知道代码的某些部分是什么意思。它将java类作为函数调用并作为参数传递:

假设类是:

public class foo { 
    public foo(Typex x) { //etc }
}

public class baa {
    public baa(Typex x) { //etc }
}

在另一个类中,它被称为:new foo(baa())

这是什么意思?

4

3 回答 3

2

它被称为构造函数。看这里

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.
于 2013-04-20T00:30:05.980 回答
2

这是错误的!新富(咩())

你不能在 Java 中做到这一点,而是你需要做的是

new foo(new baa().bar()) . 

这意味着您首先创建 baa 的引用(对象)并调用该引用的 bar() 方法。记住 Java 中的 new 关键字是从一个类中创建一个新的引用。它调用类的构造方法并为该引用分配内存。

此外,在上述情况下,它将 bar() 方法返回的任何内容作为参数传递给 foo 类,进而创建 foo 类的引用。

这是一个好的开始:[1]:http ://docs.oracle.com/javase/tutorial/java/javaOO/index.html

于 2013-04-20T00:43:05.600 回答
0

它是一个构造函数——这个小东西让创建新对象变得更容易。你可以做

Object Name = new Object(Param1, Param2);

代替

Object Name = new Object();
Name.Param1 = foo;
Name.Param2 = bar;
于 2013-04-20T00:31:10.663 回答