본문 바로가기
Java 배우기

"Hellow world!" 프로그램

by 노화방지 Anti-aging Hairstyle 2016. 1. 4.
반응형

Lesson: A Closer Look at the "Hello World!" Application


Now that you've seen the "Hello World!" application (and perhaps even compiled and run it), you might be wondering how it works. Here again is its code:


자바은 전통적인 "Hello, world!" 프로그램을 아래와 같이 작성합니다: 

The traditional "Hello, world!" program can be written in Java as:

class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. Prints the string to the console. } }



The "Hello World!" application consists of three primary components: source code commentsthe HelloWorldApp class definition, and the main method. The following explanation will provide you with a basic understanding of the code, but the deeper implications will only become apparent after you've finished reading the rest of the tutorial.


Source Code Comments

The following bold text defines the comments of the "Hello World!" application:

/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

Comments are ignored by the compiler but are useful to other programmers. The Java programming language supports three kinds of comments:

/* text */
The compiler ignores everything from /* to */.
/** documentation */
This indicates a documentation comment (doc comment, for short). The compiler ignores this kind of comment, just like it ignores comments that use /* and */. The javadoc tool uses doc comments when preparing automatically generated documentation. For more information on javadoc, see the Javadoc™ tool documentation .
// text
The compiler ignores everything from // to the end of the line.


소스 파일의 이름은 그 소스 파일이 포함하고 있는 public class의 뒤에 있어야 하며, 예를 들면 HelloWorldApp.java와 같이 접미사 .java를 붙여야 합니다


Source files must be named after the public class they contain, appending the suffix .java, for example, HelloWorldApp.java


HelloWorldApp.class를 생성하는 자바 컴파일러를 사용하여 소스 파일을 바이트코드로 컴파일해야 합니다.

It must first be compiled into bytecode, using a Java compiler, producing a file named HelloWorldApp.class


컴파일이 되어야 만 실행 또는 "시작" 될 수 있습니다.

Only then can it be executed, or "launched". 


자바 소스 파일은 하나의 public 클래스 만을 포함할 수 있으나, public 접근이 아닌 클래스들은 여러 개 포함할 수 있으며, 여러 public inner 클래스들도 포함할 수 있습니다.

The Java source file may only contain one public class, but it can contain multiple classes with other than public access and any number of public inner classes


소스 파일이 여러 개의 클래스들을 포함할 때는, 1개의 클래스를 "public"으로 만들고, 그 소소 파일의 이름을 해당 public 클래스의 이름으로 정합니다. 

When the source file contains multiple classes, make one class "public" and name the source file with that public class name.


public으로 선언되지 않은 class는 .java 파일로 저장될 수 있습니다.

class that is not declared public may be stored in any .java file. 


컴파일러가 소스 파일 안에 각 클래스 별로 클래스 파일을 생성할 것입니다.

The compiler will generate a class file for each class defined in the source file. 


클래스 파일의 이름은 .class가 부착된 클래스의 이름입니다. 

The name of the class file is the name of the class, with .class appended. 


클래스 파일 생성을 위하여, 무명 클래스들의 이름이 그들을 에워싼 클래스의 이름의 이어쓰기인 것처럼 무명 클래스들이 처리됩니다. 

For class file generation, anonymous classes are treated as if their name were the concatenation of the name of their enclosing class, a $, and an integer.


keyword public 은 메소드가 다른 클래스 안의 코드로부터 호출될 수 있음을, 또는 클래스 계층의 외부에 있는 클래스들이 이 클래스를 사용할 수 있음을 의미합니다. 

The keyword public denotes that a method can be called from code in other classes, or that a class may be used by classes outside the class hierarchy.


클래스 계층은 .java 파일이 위치한 디렉토리의 이름과 관련이 있습니다. 

The class hierarchy is related to the name of the directory in which the .java file is located. 


이것을 접근수준 제한자라고 부릅니다. This is called an access level modifier. 


다른 접근 수준 제한자들로 키워드 privateprotected가 있습니다.

Other access level modifiers include the keywords private , and protected.


메소드 앞의 키워드 static은 static 메소드를 가리키는데, 이 static 메소드는 해당 클래스의 특정 인스턴스가 아닌 클래스하고만 연계됩니다.

The keyword static in front of a method indicates a static method, which is associated only with the class and not with any specific instance of that class. 


static 메소드들만이 객체에 대한 참조 없이 invoke될 수 있습니다.

Only static methods can be invoked without a reference to an object. 


static 메소드들은 static이 아닌 클래스 멤버들에게는 접근할 수 없습니다.

Static methods cannot access any class members that are not also static. 


static으로 지명되지 않은 메소드들은 인스턴스 메소드들이며, 운영할 클래스의 특정 인스턴스를 요구합니다.

Methods that are not designated static are instance methods, and require a specific instance of a class to operate.


키워드 void는 메인 메소드가 caller에게 어떤 값도 리턴하지 않음을 가리킵니다.

The keyword void indicates that the main method does not return any value to the caller. 


자바 프로그램이 오류 코드로 나가버리면, System.exit()를 명시적으로 call 해야 합니다.

If a Java program is to exit with an error code, it must call System.exit() explicitly.


자바 언어에서 메소드 이름 "main"은 키워드가 아닙니다.

The method name "main" is not a keyword in the Java language. 


main은 단순히 프로그램에 제어를 전달하기 위하여, 자바 launcher가 call하는 메소드의 이름입니다.

It is simply the name of the method the Java launcher calls to pass control to the program. 


애플릿과 엔터프라이즈 자바빈과 같은 관리되는 환경에서 가동되는 자바 클래스들은 main() 메소드를 사용하지 않거나 필요하지 않습니다. 

Java classes that run in managed environments such as applets and Enterprise JavaBeans do not use or need a main() method. 


자바 프로그램은 main 메소드를 가진 여러 개의 클래스들을 포함할 수 있는데, 이것은 가상머신에게 어떤 클래스로부터 시작해야 할 지를 명시적으로 얘기해줄 필요가 있음을 의미합니다.

A Java program may contain multiple classes that have main methods, which means that the VM needs to be explicitly told which class to launch from.


main 메소드는 String 객체들의 배열을 수용해야 합니다.

The main method must accept an array of String objects. 


다른 정식 식별어 이름이 사용될 수 있다 하더라도, 약속에 따라 그 배열은 args로 참조됩니다.

By convention, it is referenced as args although any other legal identifier name can be used. 


Java 5 이후, main 메소드는 또한 public static void main(String... args)의 형태로 변수 아규먼트를 사용할 수 있게 되어, 임의의 숫자인 String 아규먼트로 invoke 되어야 하는 main 메소드가 가능하게 되었습니다.

Since Java 5, the main method can also use variable arguments, in the form of public static void main(String... args), allowing the main method to be invoked with an arbitrary number of String arguments. 


이 대체적 선언의 효과는 어의적으로 동일하지만(args parameter는 여전히 String 객체들의 배열임),  배열을 생성하고 전달하는 대체적인 신택스를 가능하게 합니다.

The effect of this alternate declaration is semantically identical (the args parameter is still an array of String objects), but it allows an alternative syntax for creating and passing the array.


자바 launcher는 주어진 클래스를 적재함으로서 그리고 그 public static void main(String[]) method를 시작함으로써 자바를 launch 합니다.

The Java launcher launches Java by loading a given class (specified on the command line or as an attribute in a JAR) and starting its public static void main(String[]) method. 


독립형 프로그램은 이 메소드를 명시적으로 선언해야 합니다.

Stand-alone programs must declare this method explicitly.

 

String[] args parameter는 클래스에 전달된 any arguments를 포함하고 있는 String 객체들의 배열입니다.

The String[] args parameter is an array of String objects containing any arguments passed to the class. 


main에 대한 패러미터는 자주 명령줄의 수단으로 전달됩니다.

The parameters to main are often passed by means of a command line.


Printing은 자바 표준 라이브러리의 일부입니다: 클래스 System은 out으로 불리는 public static field를 정의합니다.

Printing is part of a Java standard library: The System class defines a public static field called out. 


객체 out은 클래스 PrintStream의 인스턴스이며, printing 데이터에 대하여, Println(String)을 포함한, 많은 메소드들을 standard out에게 제공하는데, Println(String)은 전달된 스크링에게 새 줄을 추가합니다.


The out object is an instance of the PrintStream class and provides many methods for printing data to standard out, including Println(String), which also appends a new line to the passed string.


컴파일러가 자동으로 스트링 "Hellow World!"를 String 객체로 변환시킵니다.

The string "Hello World!" is automatically converted to a String object by the compiler.



The HelloWorldApp Class Definition

The following bold text begins the class definition block for the "Hello World!" application:

/**
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

As shown above, the most basic form of a class definition is:

class name {
    . . .
}

The keyword class begins the class definition for a class named name, and the code for each class appears between the opening and closing curly braces marked in bold above. Chapter 2 provides an overview of classes in general, and Chapter 4 discusses classes in detail. For now it is enough to know that every application begins with a class definition.

The main Method

The following bold text begins the definition of the main method:

/**
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); //Display the string.
    }
}

In the Java programming language, every application must contain a main method whose signature is:

public static void main(String[] args)

The modifiers public and static can be written in either order (public static or static public), but the convention is to use public static as shown above. You can name the argument anything you want, but most programmers choose "args" or "argv".

The main method is similar to the main function in C and C++; it's the entry point for your application and will subsequently invoke all the other methods required by your program.

The main method accepts a single argument: an array of elements of type String.

public static void main(String[] args)

This array is the mechanism through which the runtime system passes information to your application. For example:

java MyApp arg1 arg2

Each string in the array is called a command-line argument. Command-line arguments let users affect the operation of the application without recompiling it. For example, a sorting program might allow the user to specify that the data be sorted in descending order with this command-line argument:

-descending

The "Hello World!" application ignores its command-line arguments, but you should be aware of the fact that such arguments do exist.

Finally, the line:

System.out.println("Hello World!");

uses the System class from the core library to print the "Hello World!" message to standard output. Portions of this library (also known as the "Application Programming Interface", or "API") will be discussed throughout the remainder of the tutorial.


제어판        시스템 및 보안        시스템        시스템 속성        고급        


시스템 - 고급 시스템 설정에 들어갑니다.


고급 - 환경 변수를 클릭합니다.


시스템 변수의 새로 만들기를 누른 후

변수값은  C:\Program Files\Java\jdk1.8.0_66

변수값은  컴퓨터에 jdk가 설치된 경로로  jdk를 설치할 때 지정해주었던 경로입니다.

Path를 클릭하여 수정을 해야 합니다.


윈도우 10 에서는 %JAVA_HOME%\bin 처럼  세미콜론 ' ; ' 을 안붙이고 추가합니다.


명령 프롬프트를 실행하여 ( cmd )

java -version 을 입력하여 제대로 설치됬는지 확인을 합니다



반응형

댓글