Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将类作为函数调用意味着什么?_Java_Code Conversion - Fatal编程技术网

Java 将类作为函数调用意味着什么?

Java 将类作为函数调用意味着什么?,java,code-conversion,Java,Code Conversion,我正在将一些代码从Java(我对这种语言一无所知)移植到C。由于Java是一种类似C的语言,我在转换大多数语句方面没有问题。但我不知道代码的某些部分是什么意思。它将java类作为函数调用,并作为参数传递: 假设这些类是: public class foo { public foo(Typex x) { //etc } } public class baa { public baa(Typex x) { //etc } } 另一个类称为:newfoo(baa()) 这是什么意

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

假设这些类是:

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

public class baa {
    public baa(Typex x) { //etc }
}
另一个类称为:
newfoo(baa())


这是什么意思

它被称为构造函数。看


它被称为构造函数。看


它是一个构造器——这个小东西使创建新对象更容易。你能行

Object Name = new Object(Param1, Param2);
而不是

Object Name = new Object();
Name.Param1 = foo;
Name.Param2 = bar;

它是一个构造器——这个小东西使创建新对象更容易。你能行

Object Name = new Object(Param1, Param2);
而不是

Object Name = new Object();
Name.Param1 = foo;
Name.Param2 = bar;
这是错误的! 新foo(baa())

您不能在Java中这样做,相反,您需要做的是

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

此外,在上面的例子中,它将从bar()方法返回的任何内容作为参数传递给foo类,并反过来创建foo类的引用

这是一个良好的开端: [1] :

这是错误的! 新foo(baa())

您不能在Java中这样做,相反,您需要做的是

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

此外,在上面的例子中,它将从bar()方法返回的任何内容作为参数传递给foo类,并反过来创建foo类的引用

这是一个良好的开端:

[1] :

端口的第一条规则:如果你不知道它是做什么的,你就不能把它移植过来。@Makoto:这取决于语言中使用的功能。例如,此java程序简单,因此不使用滥用关键字。端口的第一条规则:如果您不知道它的功能,则不能将其移植。@Makoto:这取决于语言中使用的功能。例如,此java程序简单,因此不使用滥用关键字。如果没有
new
关键字,它会返回什么?@Jack您尝试它时发生了什么事?我无法在此处获取java编译器。@icanc:不回答我的问题。@Jack您需要
新的
。否则,您将得到一个编译错误。如果没有
new
关键字,它将返回什么?@Jack您尝试它时发生了什么?我无法在此处获取java编译器。@icanc:没有回答我的问题。@Jack您需要
新的
。否则,将出现编译错误。因此
newobj()
obj()
相同?@Jack显然不是;你是怎么得出这个结论的?我真的不明白。我在问什么是
newfoo(baa())
其中
baa()
@Jack,语法意味着baa()是当前类中的一个方法或其基类之一。或者这是一个编码错误,没有任何意义。所以
newobj()
obj()
相同?@Jack显然不是;你是怎么得出这个结论的?我真的不明白。我在问什么是
newfoo(baa())
其中
baa()
@Jack,语法意味着baa()是当前类中的一个方法或其基类之一。或者这是一个编码错误,这并不意味着什么。