Home NhnAcademy 선발교육과정 1일차(Java 개요 ,Java 프로그래밍 언어 개요)
Post
Cancel

NhnAcademy 선발교육과정 1일차(Java 개요 ,Java 프로그래밍 언어 개요)

Class 란

  • Java 프로그램은 클래스, 인터페이스, 열거형 및 기타 형식의 집합
  • Class는 데이터와 매소드들의 집합
  • 하나의 class는 여러 파일에 나뉘어 존재할 수 없음
  • 하나의 파일에는 여러 클래스가 존재할 수 있으나, public class는 하나만 존재해야함

main class

1
2
3
4
5
public class Hello{
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}
  • 응용 프로그램 진입점, Application Entry Point
  • java의 main메소드 정의 규칙
    • 메소드 이름의 모든 문자는 소문자 “main” 로 정의
    • String 타입 args를 파라미터로 선언
  • 여러 클래스가 main 메소드를 가질 수 있음
  • main 메소드가 종료되거나 return 하면 프로그램이 종료됨

java.lang

  • java는 많은 유틸리티 클래스를 제공함
  • 통상적으로 많이 사용되는 유틸리티 클래스를 포함하는 패키지
1
java.lang.System.out.println("hello, World!");

라고 사용하지 않고 import를 통해 간단하게 작성이 가능하다.

1
2
3
import java.lang.*;

System.out.println("hello, World!");

위와 같은 방식으로 하지만 java.lang 패키지는 특별히 import문 없이도 사용할 수 있음

System class

  • System 클래스는 환경과 관련된 속성과 메소드를 가지고 있음
    • out과 in을 이용한 표준 입력과 출력, er를 이용한 에러 출력 기능을 포함
    • 객체를 복사하는 메소드 등 여러 유용한 동작들을 제공
    • Java 프로그래밍에 가장 기본이 되는 클래들을 포함
  • System.in : 표준 입력
  • System.out : 표준 출력 - 화면
  • System.err : 오류 - 화면

Scanner class

  • 문자열을 포함한 기본적인 데이터 타입을 읽기 위한 유틸리티 클래스
  • 다양한 타입의 데이터를 읽기 위한 메소드를 포함
  • 문자열을 읽기 위한 Scanner 클래스의 매소드
    • next() 공백의 기준으로 한 단어를 읽음
    • nextLine() 개행을 기준으로 한 줄을 읽음
1
2
3
4
5
import java.uti.Scanner;
...
Scanner scan = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println(input);

이렇게 할경우 개행을 기준으로 한 줄을 읽고 println를 통해 모니터에 출력한다.

주석

  • 잘 정리된 코드 주석은 개발자에게 응용 프로그램의 구조를 쉽게 이해할 수 있도록 함
  • 단일 주석 ‘//’
  • 다중 줄 주석 ‘/*’ , ‘*/’

JavaDoc

  • Java의 주석을 이용하여 작성된 Java 프로그램을 설명하는 HTML 문서를 생성
  • 어노테이션을 사용하여 문서 항목 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class HelloWorldJavaDoc {
  /**
   *
   * HelloWorld 프로그램은 화면에 단순한 "Hello, World"문자열
   * 표준 output으로 보여주는 프로그램입니다.
   *
   * @author 홍길돌
   * @version 1.0
   * @since 2022-03-01
   */
  public static void main(String[] args) {
    /**
     * @param args 프로그램이 실행될 때 주어지는 인자값이 포함된 문자열 배열입니다.
     */
    System.out.println("Hello, World");
  }

}

위와 같은 방식으로 사용한다. javadoc -d doc HelloWorldJavaDoc.java 명령어를 통해 html파일을 만들수 있다.

예외 처리

1
2
3
4
5
6
7
8
9
10
public class Exception{
    pubic static void main(String[] args){
        try{
            System.out.println(args[0])
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
}

위와 같이 매개 변수에 아무값도 주지않고 main을 실행하게 되면 배열에 아무것도 없기 때문에 다음과 같은 오류가 발생한다.

1
2
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
	at Exception.main(Exception.java:5)
1
2
3
4
5
6
7
8
9
10
11
12
public class Exception {

  public static void main(String[] args) {
    try {
      System.out.println(args[0]);
    }
    catch (Exception e){
      System.out.println("매개 변수를 입력 오류");
    }
  }

}

위와같이 예외를 처리할 수 있다.

SDK 도구

-일반적인 도구와 유틸리티

도구 이름명령설명
jar$jar <옵션> <디렉터리 or 파일>java에서 사용되는 묶음인 jar파일을 생성하고 관리
jps$jps현재 실행중인 Java 프로세스들의 이름과 프로세스 ID를 보여줍니다.
jmap$jmap <옵션> <PID>JVM의 힙 메모리 상태를 확인합니다.
jhat$jhat <덤프 파일>jamp을 사용하여 생성한 메모리 덤프 파일을 분석합니다.

LAB 2-1 : 간단한 java 프로그램 작성

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Scanner;

public class Greetings{
    public static void main(String[] args) {
        String myName;
        System.out.println("Enter your Name");
        Scanner scan = new Scanner(System.in);
        myName = scan.next();
        System.out.printf("Greetings, %s", myName);
        scan.close();
    }
}

LAB 2-2 : 디버깅

디버깅 사용해보기

LAB 2-3 : 예외 처리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;
public class Divide {
    public static void main(String[] args) {
        try{
            Scanner scan = new Scanner(System.in);
            System.out.println("input temp:");
            String temp = scan.nextLine();
            int i = Integer.parseInt(temp);
            System.out.println("input temp:");
            temp = scan.nextLine();
            int j = Integer.parseInt(temp);
            scan.close();
            int k = i / j;
            System.out.printf("%d / %d = %d",i,j,k);
        }catch(Exception e){
            System.out.println("An Exception was throw" + e);
        }
    }
}

j 값에 0을 넣어 예외를 발생하게 하였다.

1
An Exception was throwjava.lang.ArithmeticException: / by zero

예외를 catch 하여 예외를 처리하는 것을 확인 할수있다.

Quiz

  1. Java 응용 프로그램이 시작되는 위치는 어디입니까? main 메소드
  2. Java 응용 프로그램은 언제 종료됩니까? main 메소드가 종료되거나 return할 경우
  3. Java 응용 프로그램은 몇 개의 클래스를 포함할 수 있습니까? 하나의 파일에는 여러 클래스가 존재할 수 있으나, public class는 하나만 존재해야함
  4. Java 응용 프로그램은 몇 개의 main 메소드를 포함할 수 있습니까? 여러개의 main 메서드를 가질수 있지만 응용 프로그램의 시작한 하나의 main에서 실행한다.
  5. System.in 변수에 대해 설명하세요. 표준 입력으로 예를 들면 Scanner를 통해 사용자에게 입력을 받을수 있다.
This post is licensed under CC BY 4.0 by the author.