2013-04-20 3 views
0

나는 자바로부터 어떤 코드를 C로 포팅하려고한다. 자바는 C와 비슷한 언어이므로, 대부분의 문장을 변환하는데 아무 문제가 없다. 하지만 코드의 일부분이 무슨 뜻인지 전혀 알지 못합니다. 로 클래스를 가정클래스를 함수로 부르는 것은 무엇을 의미합니까?

을 : 다른 클래스에서

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

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

가로 불리는 : new foo(baa())

은 무엇을 의미합니까 그것은 함수로 자바 클래스를 호출하고 매개 변수로 전달할?

+2

그것은 생성자이다. –

+2

포트의 첫 번째 규칙 : 포트의 기본 규칙 : 포트의 기능을 모른다면 포트를 포팅 할 수 없습니다. – Makoto

+0

@Makoto : 그것은 언어에서 사용되는 특징의 depedends입니다. 예를 들어,이 자바 프로그램에서는 악용 키워드가 사용되지 않으므로 간단하지 않습니다. – Jack

답변

2

이 잘못 할 수있다! 새로운 푸 (BAA())

당신은 자바에서이 작업을 수행 할 수없는 대신에 당신이해야 할 일) (이 먼저 매와 통화 표시 줄의 참조 (객체)를 생성 의미

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

입니다 그 참조의 방법. Java에서 새로운 키워드를 기억하는 것은 클래스에서 새로운 참조를 만드는 것입니다. 클래스의 Constructor 메소드를 호출하고 해당 참조에 메모리를 할당합니다.

은 또한 상기 경우에 그것은 푸 클래스 인수로 바() 메소드에서 리턴 차례로 너무 푸 클래스 참조를 생성대로 통과한다.

이 좋은 시작은 다음 [1] http://docs.oracle.com/javase/tutorial/java/javaOO/index.html

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. 
+0

'new' 키워드없이 무엇이 반환됩니까? – Jack

+1

@ 잭 당신이 그것을 시도했을 때 어떤 일이 일어 났습니까? –

+0

자바 컴파일러를 사용할 수 없습니다. – Jack

0

참조하십시오. 당신은

Object Name = new Object(Param1, Param2); 

대신

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

그래서'new obj()'는'obj()'와 동일합니까? – Jack

+0

@ 잭 분명히 아닙니다; 어떻게 그 결론을 이끌어 냈습니까? –

+1

나는 그것을 정말로 얻지 않는다. 나는'new foo (baa())'가'baa()'가'class '인 곳을 물어볼 것이다. – Jack