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
- Java 응용 프로그램이 시작되는 위치는 어디입니까? main 메소드
- Java 응용 프로그램은 언제 종료됩니까? main 메소드가 종료되거나 return할 경우
- Java 응용 프로그램은 몇 개의 클래스를 포함할 수 있습니까? 하나의 파일에는 여러 클래스가 존재할 수 있으나, public class는 하나만 존재해야함
- Java 응용 프로그램은 몇 개의 main 메소드를 포함할 수 있습니까? 여러개의 main 메서드를 가질수 있지만 응용 프로그램의 시작한 하나의 main에서 실행한다.
- System.in 변수에 대해 설명하세요. 표준 입력으로 예를 들면 Scanner를 통해 사용자에게 입력을 받을수 있다.