[OP의 문제 편집 요약] :
당신은 자바에서 기본 및 객체 유형 간의 차이를 검토 할 필요가있다.
기본 유형은 단순히 선언하고 사용할 수 있습니다
int f; // Java (or is c? :)
f = 10;
객체 유형을 할당해야합니다. 라인 사이
읽기 : (C 프로그래머의 경우 :.. 자바 객체가 동적으로 할당되는 힙, 스택하지 생각)
Foo myFoo = new Foo(); // Java
struct foo *myFoo = (struct foo *) malloc(sizeof(struct foo)); // good old C
- - 초기 대답
는
혼란의 요점은 이것이다 에 의해서만이 타입 시스템에게베이스의 확장이 존재한다고 알려주고 있다고 생각하는 것 같습니다. 타입에 마술처럼 메소드를 호출 할 수 있어야합니다.
정적 인 방법을 사용했기 때문에 인스턴스를 만들지 않아도됩니다.
카이의 답을 따라 뭔가가 있다고 가정 해 봅시다 (올바른 btw입니다). 그런 다음
:
/** using Kai's classes */
public void foobar() {
YourClass foo = new YourClass();
foo.commonMethod(); // try it ..
}
검토 무엇 해야 정의하고 C
에 struct
를 사용 단순히의 노하우.
이제 잊지이 : 자바에서
typedef struct {
int foo;
char bar[3];
} extended;
extended s; // this is not just declaring s; it is also allocating it
s.foo = 10; // hey, no malloc. nasty Java insists on new ..
, 당신은 말할 때 :
SomeClass s; // s declared but not instantiated (think 'allocated')
그런 다음 개체를 인스턴스화해야합니다.
s = new SomeClass();
몇 가지 예제 코드를 볼 수 있습니까? – Vache
부모 클래스 (wrapperclass)에서 정의하는 함수를 자식 클래스까지 확장 할 수 있습니다. 당신의 children 클래스에서, 당신은 단지 wrapperclass로부터 메소드를 호출 할 수있다. 아니면 그냥 override 할 수있다. –
OOP 지식 격차에서 해결해야 할 여러 문제가 있다는 생각이 든다. ""new "를 사용하여 래퍼 클래스의 새 인스턴스를 만들어야합니다. 그런 다음 extend를 사용하는 지점은 무엇입니까." 구두점을 제쳐두고, 그것은 실제로 말이되지 않습니다. – alphazero