2014-11-15 2 views
0
public class HelloWorldV3 
{ 
//default constructor 
HelloWorldV3() 
{ 
} 

//print two lines of text 
public void printTwoLines() 
{ 
    System.out.println("Hello, Virtual World!"); 
    System.out.println("It is a great day for programming."); 
} 

//main method 
public static void main(String [] args) 
{ 
    HelloWorldV3 hello = new HelloWorldV3(); 
    hello.printTwoLines(); 
} 

안녕하세요, 저는 생성자에 대해 배우기 시작했고 일부 코드를 이해하는 데 어려움을 겪고 있습니다. 위의 프로그램에서 생성자가 생성되었음을 알지만 비어 있습니다. printTwoLines() 함수는 두 줄을 인쇄하고 main 메서드는 생성자를 사용하여 함수를 호출합니다. 왜 "HelloWorldV3 hello = new HelloWorldV3();"이 필요한지 궁금했습니다. 그리고 생성자에 실제로 무언가가 있다면 어떻게 될 것인가?생성자 이해 (매우 간단한 코드)

+0

[이] (https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html) 및 기타 모든 관련을 자습서를 먼저. –

+0

객체와 객체 지향 프로그래밍을 이해합니까? – Zach

답변

1

는 :

HelloWorldV3 hello=new HelloWorldV3(); 

라인 안녕하세요라는 변수를 만듭니다. Hello는 아마도 익숙한 것과는 다른 유형의 변수이며 숫자 나 정수 또는 이와 유사한 것은 저장하지 않지만 객체 (실제로는 객체의 위치이지만 걱정하지 마십시오. 지금). 그런 다음 헬로 변수 또는 변수 i 중 하나에 액세스 할 수 있습니다

int i; 
i=5; 

:

HelloWorldV3 hello; 
hello=new HelloWorldV3(); 

당신이 쓰는 것처럼 : 당신은 또한으로 작성할 수 있습니다.

new HelloWorldV3(); 

실행 : 코드가 때 질문의 두 번째 부분에 관해서는

는, 생성자의 어떤 호출 할 것입니다.그래서 당신은 다음과 같이 constructor에 내부에 몇 가지 코드를 넣을 수 있습니다 :

public HelloWorldV3() { 
    System.out.println("In the constuctor"); 
} 
을 통해 읽기
+0

constuctor를 호출 할 때 해당 코드가 실행됩니다. – WiErD0

0

HelloWorldV3 객체에 new 연산자를 사용하여 공간을 할당 한 것입니다.

생성자에서 상태를 정의하는 것이 좋습니다. 내 말은 int 필드라고하면, 객체를 생성 할 때 (값 10과 같이) 객체를 만들 때 적절한 기본값을 말하도록 초기화 할 수 있습니다.

0

생성자가 객체 "hello"를 초기화합니다. "HelloWorldV3"을 입력하십시오. 생성자에 코드가있는 경우 메서드의 첫 번째 코드 줄에서 "new HelloWorldV3()"을 호출 할 때 코드가 실행됩니다. 따라서 메서드 "printTwoLines"전에 실행됩니다. 나는 분명히 희망한다. 고마워. 그건 당신이 메서드를 호출하고 해당 필드 (있는 경우)에 액세스 할 수 있도록 클래스 HelloWorldV3의 인스턴스 (객체)를 생성하는 것 때문에

0

당신은 라인을

HelloWorldV3 hello = new HelloWorldV3(); 

이 필요합니다.

Java는 객체를 인스턴스화하는 과정에서 배후에 몇 가지 작업을 수행하며, Java가 클래스의 인스턴스를 만들 때 실행할 코드 (주로 초기화 작업)를 지정할 수 있도록 생성자의 개념이 있습니다. 코드는 생성자가 있었다면

, 즉 코드 때 라인

HelloWorldV3 hello = new HelloWorldV3(); 

실행하는 실행한다.

질문이있는 질문에 대답하려면 해당 줄이 없으면 printTwoLines() 메서드를 어떻게 호출합니까?