본문 바로가기

JAVA170

[Java] Ch.20 제네릭 제네릭의 필요성 다음 코드는 종족 클래스에 종족별 유닛을 생산해서 저장하고 가져오는 것인데, 종족을 표현하는 클래스인 HumanCamp1 클래스와 MachineCamp1 클래스 구조가 똑같음 → 코드가 중복된다는 단점이 있음 class Npc1 { public String toString() { return "This is a Npc1."; } } class HumanCamp1 { private Npc1 unit; public void set(Npc1 unit) { this.unit = unit; } public Npc1 get() { return unit; } } class Tank1 { public String toString() { return "This is a Tank1."; } } class .. 2023. 10. 24.
[Java] Ch.19 정렬 알고리즘 만들기 버블 정렬 알고리즘 인접한 요소끼리 비교하여 더 작은 값을 앞으로, 큰 값을 뒤로 저장 1번 과정을 마지막 원소까지 반복 더 이상 자리를 교환하지 않을 때까지 1번, 2번 반복 import java.util.Scanner; public class BubbleSort { public static void getNumber(int[] num) { Scanner sc = new Scanner(System.in); System.out.println("10개의 정수를 무작위로 입력하세요."); for(int i = 0; i < num.length; i++) { num[i] = sc.nextInt(); } } public static void bubbleSort(int[] num) { for(int i = 0; i.. 2023. 10. 23.
[Java] Ch.18 열거형, 가변 인수, 어노테이션 열거형 서로 관련 있는 상수들을 모아 놓고 대표할 수 있는 이름을 정의한 것 자바에서 열거형은 클래스처럼 사용됨 enum 이름 { // 요소 나열 } final 상수를 사용했을 때 모호함 옛날 st interface MyNum { int SPRING = 0; int SUMMER = 1; int FALL = 2; int WINTER = 3; int DO = 0; int RE = 1; int MI = 2; int FA = 4; int SOL = 5; int RA = 6; int SI = 7; } 인터페이스에 사용된 변수는 앞에 public static final이 생략됨 위 코드에서 SPRING과 DO는 같은 값을 가지고 있기에 잘못 사용하면 의미 전달에 있어 모호함이 나타날 수 있음 모호한 경우 예제 in.. 2023. 10. 23.
[Java] Ch.17 자바의 기본 클래스 java.lang 클래스 우리가 많이 사용하는 기본 클래스를 포함하는 패키지 이 패키지에 속한 클래스들은 임포트하지 않아도 자동으로 임포트됨 ▼대표적인 실행 예외 클래스 설명 Object 최상위 클래스로 기본적인 메서드 제공 String, StringBuffer, StringBuilder 문자열을 처리하는 메서드 제공 Number, Integer, Long, Float, Double 기본형 데이터 객체화 System 시스템 정보나 입출력을 처리하는 메서드 제공 Math 각종 수학 함수 제공 Thread 스레드를 처리하는 메서드 제공 Class 실행 중에 클래스 정보 제공 이 패키지에 속한 모든 클래스들은 JDK가 설치된 폴더의 하위 폴더인 lib 폴더 내 src.zip 내 java.lang 패키지에서 확.. 2023. 10. 23.
[Java] Ch.16 예외 처리 예외와 에러 예외는 개발자가 다음과 같은 목적을 위해 제어·처리함 프로그램의 정상 종료 예외 발생 시 무시하고 프로그램 계속 실행 ▼자바에서 제공하는 에러 전체 클래스 프로그램에서 처리하는 예외 클래스의 최상위 클래스는 Exception 클래스 모든 예외 타입은 클래스로서 서로 상속 관계 예외 종류 실행 예외 예외 처리를 하지 않아도 컴파일할 수 있는 비검사형 예외(Unchecked Exception) 실행 단계에서 체크 일반 예외 예외 처리를 하지 않으면 컴파일 오류가 발생하므로 꼭 처리해야 하는 검사형 예외(Checked Exception) 컴파일 단계에서 체크 예외를 구분하는 이유 : 프로그램 성능 때문 모든 상황에서 예외 처리를 하면 프로그램의 성능 저하 문제로 이어지기 때문에 일반 예외는 컴파일.. 2023. 10. 23.
[Java] Ch.15 배열 1차원 배열 배열 선언 배열 변수는 기본 자료형을 사용하더라도 다음과 같이 객체를 만드는 방법으로 선언 자료형[] 변수명 = new 자료형[개수];// 자바에서 조금 더 선호하는 방법 자료형 변수명[] = new 자료형[개수]; 배열 요소를 구분하는 배열 인덱스는 0부터 시작 int[] num = new int[10]; int[] num; num = new int[10]; class BoxA1 { } public class Ex01_ArrayInstance { public static void main(String[] args) { // 길이가 5인 int형 1차원 배열의 생성 int[] ar1 = new int[5]; // 길이가 7인 double형 1차원 배열의 생성 double[] ar2 = new.. 2023. 10. 20.