일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 챌린지
- 제이펍
- 맛있는디자인스터디12기
- 맛있는디자인
- 혼공분석
- 진짜쓰는일러스트레이터
- 혼공JS
- CS2023
- 프리미어프로
- 회고
- 애프터이펙트
- 혼공파
- Doit파이썬스터디
- 맛있는디자인스터디13기
- 3주차후기
- 혼공자
- 6주차후기
- 혼공단
- 스터디
- 후기
- 스터디완료
- 생성형AI
- 혼공머신
- CC2023
- 전면개정2판
- 혼공
- 혼공C
- Doit점프투파이썬
- 혼공학습단
- 맛있는디자인스터디11기
- Today
- Total
애독자's 공부방
[혼공자] 6주차 _ 혼자 공부하는 자바(개정판) 본문
혼공단 - 혼공자, 혼자 공부하는 자바(개정판)
■ 공부한 내용
# | 진도 | 기본 숙제(필수) | 추가 숙제(선택) |
6주차 (8/12 ~ 8/18) |
Chapter 10 ~ 11 | p.486 10-2 확인 문제 2번 문제 풀고 과정 설명하기 | java.lang 패키지에 속하는 주요 클래스와 용도를 정리해서 포스팅하기 |

□ Chapter 10~11
▷ 10-1
- 예외: 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류
. 발생하면 프로그램이 곧바로 종료되는 에러와 비슷하지만, 예외 처리를 통해 종료하지 않고 정상 실행 상태가 유지되는 것이 가능
- 예외 클래스: 자바에서는 예외를 클래스로 관리 (모든 예외 클래스는 java.lang.Exception 클래스를 상속)
. JVM은 프로그램을 실행하는 도중에 예외가 발생하면 해당 예외 클래스로 객체를 생성하고, 예외 처리 코드에서 예외 객체를 이용하도록 지원
- 일반 예외: 컴파일러 체크 예외라고도 하며, 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사
- 실행 예외: 컴파일러 넌 체크 예외라고도 하며, 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일하는 과정에서는 미검사
▷ 10-2
- 예외 처리: 프로그램에서 예외가 발생했을 경우 프로그램의 갑작스런 종료를 막고, 정상 실행을 유지할 수 있도록 처리하는 것
- try-catch-finally 블록: 생성자 내부와 메소드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외 처리를 진행
- 다중 catch 블록: try 브록 내부에서 예외별로 예외 처리 코드를 다르게 할 때 사용
. catch 블록이 여러 개라 할지라도 단 하나의 catch 블록만 실행 (하나의 예외가 발생하면 즉시 실행을 멈추고 해당 catch 블록으로 이동하기 떄문)
- throws 키워드: 메소드 선언부 끝에 작성되어 메소드에서 처리하지 않은 예외를 호출한 곳으로 떠넘기는 역할
. 해당 키워드 뒤에는 떠 넘길 예외 클래스를 쉼표로 구분해서 나열
▷ 11-1
- Object 클래스: 자바의 최상위 부모 클래스 (해당 클래스의 메소드는 모든 자바 객체에서 사용 가능)
- System 클래스: 운영체제의 일부 기능을 이용 가능 (프로그램 종료, 키보드로부터 입력, 모니터로 출력, 현재 시간 읽기 등)
. 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성됨
- Class 클래스: 자바는 클래스와 인터페이스의 메타 데이터를 Class 클래스로 관리
. 메타 데이터: 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보
- String 클래스: 문자열 리터럴은 String 객체로 자동 생성되지만, 다양한 생성자를 이용해서 직접 String 객체를 생성하는 것도 가능
. 문자열 조작을 위한 많은 메소드 소유
- Wrapper(포장) 클래스: 기본 타입의 값을 갖는 객체를 포장 객체라고 하며, 외부에서 변경 불가
. 박싱: 기본 타입의 값을 포장 객체로 만드는 것 / 언박싱: 반대로 포장 객체로부터 기본 타입의 값을 얻는 것
- Math 클래스: 수학 계산에 사용할 수 있는 메소드를 제공 (제공하는 메소드가 모두 정적 메소드라 Math 클래스로 바로 사용 가능)
▷ 11-2
- Date 클래스: 날짜를 표현하는 클래스. 객체 간에 날짜를 주고받을 때 매개 변수나 리턴 타입으로 주로 사용
- Calendar 클래스: 달력을 표현하는 클래스 (추상 클래스이므로 new 연산자를 사용해서 인스턴스 생성 불가)
. 정적 메소드인 getInstance()를 이용하면 현재 운영체제에 설정되어 있는 시간대를 기준으로 한 하위 객체를 습득
■ 기본 숙제
- p.486 10-2 확인 문제 2번 문제 풀고 과정 설명하기

. 문제: throws에 대한 설명으로 틀린 것은 무엇입니까? ④
1) 생성자나 메소드의 선언 끝 부분에 사용되어 내부에서 발생된 예외를 떠넘긴다.
2) throws 뒤에는 떠넘겨야 할 예외를 쉼표(,)로 구분해서 기술한다.
3) 모든 예외를 떠넘기기 위해 간단하게 throws Exception으로 작성할 수 있다.
4) 새로운 예외를 발생시키기 위해 사용된다.
. 풀이: throws 키워드는 이미 발생한 예외를 떠넘기는 역할만 수행합니다.
■ 추가 숙제(선택)
- java.lang 패키지에 속하는 주요 클래스와 용도를 정리해서 포스팅하기
. Package java.lang ( Java SE 22 & JDK 22 )
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/package-summary.html
- 자바의 기본 도구 상자: java.lang 패키지
. 자바 프로그래밍을 처음 시작하는 사람들에게는 java.lang 패키지가 조금 어렵게 느껴질 수 있습니다. 하지만 걱정하지 마세요! 이 패키지는 마치 자바 프로그래머를 위한 만능 도구 상자와 같다고 생각하면 됩니다.
. 왜 java.lang 패키지가 중요할까요?
: 자바로 프로그램을 만들 때, 누구나 꼭 필요한 기본적인 도구들이 있죠? 예를 들어, 숫자를 계산하거나, 글자를 다루거나, 프로그램을 실행하거나 하는 일 입니다. 이런 기본적인 기능들을 담고 있는 것이 바로 java.lang 패키지입니다.
. java.lang 패키지 안에는 어떤 도구들이 있을까요?
1) String (문자열) 도구: 문자열을 자르고, 붙이고, 찾고, 비교하는 등 다양한 작업을 할 수 있는 도구입니다. 예를 들어, "안녕하세요"라는 문자열의 길이를 측정하거나, "안녕"이라는 단어가 포함되어 있는지 확인할 수 있습니다.
2) Math (수학) 도구: 숫자를 가지고 계산을 할 때 사용하는 도구입니다. 덧셈, 뺄셈, 곱셈, 나눗셈뿐만 아니라, 제곱근, 삼각함수 등 복잡한 계산도 할 수 있습니다.
3) System (시스템) 도구: 프로그램과 컴퓨터를 연결해주는 다리 역할을 하는 도구입니다. 화면에 글자를 출력하거나, 사용자에게 입력을 받는 등의 작업을 할 수 있습니다.
. 마치 레고 블록과 같습니다!
: java.lang 패키지에 있는 클래스들은 마치 레고 블록과 같습니다. 이 블록들을 가지고 다양한 모양의 건물을 만들 수 있듯이, java.lang 패키지에 있는 클래스들을 이용해서 복잡한 프로그램을 만들 수 있는 거죠.
. 예를 들어볼까요?
: 지금까지의 내용을 종합해서 사용자의 이름을 입력받아 맞춤형 인사를 출력하고, 사용자가 입력한 숫자의 제곱근을 계산하여 출력하는 프로그램을 만들어 보겠습니다.
import java.util.Scanner;
public class JavaLangTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 사용자 이름 입력받기
System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine();
// 사용자에게 숫자 입력 받기
System.out.print("숫자를 입력하세요: ");
int number = scanner.nextInt();
// 입력받은 숫자의 제곱근 계산
double sqrtResult = Math.sqrt(number);
// 결과 출력
System.out.println(name + "님, 안녕하세요!");
System.out.println(number + "의 제곱근은 " + sqrtResult + "입니다.");
}
}
- 사용자의 입력을 받기 위해 java.util.Scanner를 사용했지만, 나머지 부분은 java.lang의 System, String, Math를 활용했습니다.
. Scanner 클래스를 이용한 사용자 입력: Scanner 클래스를 사용하여 사용자로부터 이름과 숫자를 입력받습니다. nextLine() 메소드는 한 줄의 문자열을 입력받고, nextInt() 메소드는 정수를 입력받습니다.
. Math 클래스를 이용한 제곱근 계산: Math.sqrt() 메소드를 사용하여 입력받은 숫자의 제곱근을 계산합니다.
. 결과 출력: System.out.println() 메소드를 사용하여 사용자의 이름과 함께 맞춤형 인사를 출력하고, 계산된 제곱근 결과를 출력합니다.

'Java > 혼공학습단 12기' 카테고리의 다른 글
혼공학습단 12기 활동 회고 : 꾸준히 혼공자 (0) | 2024.08.15 |
---|---|
[혼공자] 5주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.08.04 |
[혼공자] 4주차 _ 혼자 공부하는 자바(개정판) (1) | 2024.07.22 |
[혼공자] 3주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.07.15 |
[혼공자] 2주차 _ 혼자 공부하는 자바(개정판) (0) | 2024.07.08 |