Chapter 1: Java 프로그램 구조
- Hello, World
- Class
- main 메소드
- import 지시문과 java.lang 패키지
- Demo: Java 프로그램 컴파일 및 실행
Chapter 2: 기초적인 입/출력 동작
- System 클래스
- 표준 출력
- Scanner 클래스
Chapter 3: 권장 사항
- 주석
- javadoc
- 예외 처리
- Demo: JavaDoc을 사용한 HTML 문서 생성
Chapter 4: 컴파일, 실행, 디버깅
- 컴파일러 호출
- Java 프로그램 실행
- 디버깅
- JDK 도구
Lab 2-1: 간단한 Java 프로그램 작성
Lab 2-3: 예외처리
Chapter 1: Java 프로그램 구조
Hello, World
public class Hello
{
public static void main(String[] args)
{
System.out.println(“Hello, World!”);
}
}
실행결과
Hello, World!
Class
- Java 프로그램은 클래스, 인터페이스, 열거형 및 기타 형식의 집합.
- Class는 데이터와 메소드들의 집합.
- Java 프로그램은 여러 개의 파일로 구성 가능하다.
- 하나의 class는 여러 파일에 나뉘어 존재할 수 없다.
- 하나의 파일에는 여러 클래스가 존재할 수 있으나, public class는 하나만 존재해야 한다.
- 파일의 이름과 public class의 이름은 동일해야 한다. ex) 위 코드의 파일 이름은 Hello.java
main 메소드
- Application Entry Point: 응용 프로그램이 시작되는 곳.
- "public static void main(String[] args)" 와 같이 선언.
- 여러 개의 클래스가 main 메소드를 가질 수 있다.
- main 메소드가 종료 or return 하면 프로그램 종료.
import 지시문과 java.lang 패키지
- import: 다른 패키지 안의 클래스를 사용할 때 사용하는 명령어로 Java는 Class 단위로 import한다.
ex) import java.util; (X) -> import java.util.Scanner; (O) - java.lang: 통상적으로 많이 사용되는 유틸리티 클래스들을 포함하는 패키지로 import문 없이 사용 가능하다.
- java.lang 패키지에 속하는 System 클래스를 이용하면 OS의 일부 기능들을 이용할 수 있다. (입/출력, 응용 프로그램 종료, 메모리 정리, 현재 시간 읽기, 시스템 속성 읽기, 환경 변수 읽기 등)
java.lang.System.out.put.println(“Hello, World!”);
Demo: Java 프로그램 컴파일 및 실행
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
(1) 터미널 실행
(2) 원하는 위치에 "mkdir 폴더이름"
(3) " code . " 하면 visual studio code 가 실행된다.
(4) 위 코드 입력 후 터미널에서 아래 명령을 실행하여 HelloWorld.java 를 컴파일한다.
> javac HelloWorld.java
(5) 탐색기에서 HelloWorld.class 파일이 생성된 것을 확인한다.
(6) 터미널에서 아래 명령을 실행하여 Helloworld 프로그램을 실행한다.
> java HelloWorld
Chapter 2: 기초적인 입/출력 동작
System 클래스
- System 클래스는 환경과 관련된 속성과 메소드를 가지고 있다.
- Out과 in을 이용한 표준 입/출력, err를 이용한 에러 출력 기능을 포함
- System.in: 표준 입력
- System.out: 표준 출력 - 화면
- System.err: 오류 - 화면
표준 출력
- System.out의 메소드들로 화면에 정보를 표시.
- System.out.print : 표준 화면 출력.
- System.out.println : 표준 화면 출력에 줄 바꿈을 같이 표시.
- System.out.printf : 출력에 포맷을 지정.
System.out.print("Hello, World!");
System.out.println(“Hello, World!”);
System.out.printf("%d 더하기 %d는 %d", 2, 3, 5); // 출력: 2 더하기 3은 5
- 숫자 포맷 / 시간 포맷
아래 코드는 "YYYY-MM-DD 시간:분:초" 형식 값을 화면에 출력한다.
Date date = new Date();
System.out.printf("%tF %tT", date, date); // 출력: 2022-06-07 00:50:24
Scanner 클래스
- 문자열을 포함한 기본적인 데이터 타입을 읽기 위한 유틸리티 클래스
- 문자열을 읽기 위한 Scanner 클래스의 메소드
- next() : 공백을 기준으로 한 단어를 읽음
- nextLine() : 개행을 기준으로 한 줄을 읽음.
- java.util 패키지에 포함되어 있다.
import java.util.Scanner;
…
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine(); // 한 줄의 텍스트를 읽음.
System.out.println(input);
Chapter 3: 권장사항
주석
// 단일 주석
System.out.println(“What is your name?”);
String name = scanner.nextLine();
/* 다중 줄 주석 */
int gCD(int i, int j) { … } // 최대 공약수를 반환한다.
javadoc
- Java의 주석을 이용하여 작성된 Java 프로그램을 설명하는 HTML 문서를 생성한다.
- /** 로 시작하고 */ 로 끝나는 여러 줄 주석을 표시하여 생성될 문서에 표시될 내용을 선언
- @(어노테이션)을 사용하여 문서 항목 생성
/**
* @author NHN Academy
* @version 1.0 2022-03-01
*/
public class Hello {
/**
* @param args 프로그램이 실행될 때 주어지는 인자값이 포함된 배열입니다
*/
public static void main(String args[]) {
System.out.println("Hello, Worlds!");
}
}
class-programming_with_java/Module 02 Java 프로그래밍 언어 개요/contents/14_javadoc.adoc at master · gikpreet/class-pr
Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.
github.com
- 아래와 같은 방법으로 Javadoc을 사용하여 HTML 문서를 생성할 수 있다.
$ javadoc -d [출력 디렉토리] [대상 파일] // javadoc -d 20240820 hello.java
- 실행 결과
예외처리
- 예외: 개발자가 예측할 수 있는 오류
- Syntax Error(문법 오류): 문법적으로 틀린 것.
- Semantics Error(의미 오류): 개발자의 의도대로 작동되지 않는 것. ex) 오타
- Java는 try-catch 구문을 사용하여 예외를 처리한다.
try 절 내에 있는 구문이 실행 과정에서 예외가 발생되면 실행은 catch 절로 전송된다.
public class Hello {
public static void main(String[] args) {
try {
System.out.println(args[0]);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Chapter 4: 컴파일, 실행, 디버깅
컴파일러 호출
- 일반적인 컴파일 옵션
- 개발 환경에서 컴파일
- 명령 줄에서의 컴파일 (아래는 터미널-zsh 에서 입력한 것)
- 오류 표시
Java 프로그램 실행
- 명령 줄에서 실행 (위의 사진 참조)
- 개발 환경에서 Java 프로그램 실행
디버깅
- Breakpoints와 IDE가 제공하는 디버거 사용
Lab 2-1: 간단한 Java 프로그램 구현
import java.util.Scanner;
public class Greetings {
public static void main(String[] args) {
String myName;
System.out.print("Enter your name: ");
Scanner scanner = new Scanner(System.in);
myName = scanner.nextLine();
System.out.printf("Greetings %s", myName);
scanner.close(); // scanner 열고 닫아줘야함
}
}
실행 결과
Enter your name: Joo
Greetings Joo
Lab 2-3: 예외처리
import java.util.Scanner;
public class Divide {
public static void main(String[] args) {
try{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter first Integer: ");
String temp = scanner.nextLine();
int i = Integer.parseInt(temp);
System.out.println("Enter second Integer: ");
temp = scanner.nextLine();
int j = Integer.parseInt(temp);
scanner.close();
int k = i/j;
System.out.printf("%d / %d = %d", i, j, k);
}
catch(ArithmeticException e) {
System.out.println("An Exception was thrown: " + e); // e는 java.lang.ArithmeticException: / by zero 이렇게 출력됨
}
catch(NumberFormatException e){
System.out.println("Please enter a digit");
}
catch(Exception e) { // 모든 오류를 한 번에 처리: Exception 하위에 ArithmeticException, NumberFormatException 등이 있어서 한 번에 다 잡음.
System.out.println("Exception was occured");
}
}
}
// 예측한 오류 2가지: temp에 int로 변환 불가능한 값이 들어왔을 경우, j값으로 0이 들어온 경우(0으로 나눌 수 없음)
// 위처럼 세부적인 오류를 잡을 수 있지만 모든 예외를 하나로 잡으려면 "catch(Exception e)"" 사용
출처: https://github.com/gikpreet/class-programming_with_java/tree/master
GitHub - gikpreet/class-programming_with_java
Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.
github.com
'Java' 카테고리의 다른 글
[OOP] 객체지향 설계 원칙: SOLID (0) | 2024.08.23 |
---|---|
[OOP] 객체 지향 프로그래밍(OOP)의 정의와 4가지 특징 * (0) | 2024.08.23 |
[Java] 04. Statement와 Expression (0) | 2024.08.22 |
[Java] 03. 기본 데이터 (Primitive Data Type) (0) | 2024.08.22 |
[Java] 01. Java 개요 (0) | 2024.08.20 |