저는 완전히 Java에 익숙하지 않습니다. 그리고 Java 컴파일러가 다른 클래스에서 한 클래스의 객체를 만드는 방법에 대한 질문을 보았습니다. 예를 들면 : 나는 주요 방법으로 클래스 B가자바 컴파일은 다른 클래스의 한 클래스의 객체를 어떻게 생성합니까?
class A{}
:
나는 다음과 같이 클래스 A가 여기에
class B {
public static void main(String[] args){
A a = new A();
System.out.println(a);
}
}
는 질문 : 나는 한 별도의 txt 파일에 클래스 A를 썼다 다른 txt 파일에 클래스 B가 있습니다. 컴파일 할 때 "클래스 B"컴파일러는 클래스 A의 경로가 없기 때문에 "클래스 A"가 존재한다는 것을 어떻게 알 수 있습니까? 클래스 A의 경로는 제공하지 않으며 클래스 A가 존재한다는 단서를 제공하지 않습니다. 하지만 자바 컴파일러가 B 클래스의 클래스 A에 대한 객체를 알고 작성하는 방법은 바보 같은 질문 일 수 있지만 대답 없이는 더 이상 진행할 수 없습니다. 미리 감사드립니다.
자바 컴파일러는 실제로 이러한 파일을 찾기 위해 하드 드라이브에 보인다. '-classpath' 옵션을 사용하여 수동으로 찾는 경로를 설정할 수 있습니다. http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html – markspace
컴파일러는 객체를 생성하지 않으며 컴파일 할 때 참조 유형 호환성 및 해당 클래스의 가용성을 확인합니다 (여기 클래스 A 클래스 B). 클래스 로더는 먼저 클래스 A를로드 한 다음 클래스 B는 클래스 A에 종속되므로 클래스 B를로드합니다. 객체 생성은 런타임에 수행됩니다. 컴파일 타임과 런타임 액션을 별도로 이해한다면 대부분의 의심은 해결 될 것입니다. ref : http://stackoverflow.com/questions/20796046/flow-of-class-loading-for-a-simple-program, http : // www.javaworld.com/article/2077260/learn-java/learn-java-the-basics-of-java-class-loaders.html – dkb
-http : //stackoverflow.com/questions/39060422/how-java-compiles-creates -objects-of-one-class-in-another-class] 감사합니다. @dkb – Javabie