Java 89

[Java] 열거 객체의 메소드 2022.11.06

열거 객체는 열거 상수의 문자열을 내부 데이터로 가지고 있음 리턴 타입 메소드(매개 변수) 설명 String name( ) 열거 객체의 문자열을 리턴 int ordinal( ) 열거 객체의 순번(0부터 시작)을 리턴 int compareTo( ) 열거 객체를 비교해서 순번 차이를 리턴 열거 타입 valueOf(String name) 주어진 문자열의 열거 객체를 리턴 열거 배열 values( ) 모든 열거 객체들을 배열로 리턴 java.lang.Enum 클래스에 선언된 메소드이지만 열거 객체에서 사용할 수 있음 → 모든 열거 타입은 컴파일시에 Enum 클래스를 상속하게 되어있기 때문 name() 메소드 열거 객체가 가지고 있는 문자열을 리턴 리턴되는 문자열은 열거 타입을 정의할 때 사용한 상수 이름 nam..

[Java] 열거 타입 2022.11.06

데이터 중에는 몇 가지로 한정된 값만을 갖는 경우가 있음EX) 요일에 대한 데이터 - 월, 화, 수, 목, 금, 토, 일       계절에 대한 데이터 - 봄, 여름, 가을, 겨울열거 타입 (enumeration type) : 한정된 값만을 갖는 데이터 타입: 열거 타입은 몇개의 열거 상수 (enumeration constant) 중에서 하나의 상수를 저장하는 데이터 타입 열거 타입 선언열거 타입을 선언하기 위해서는 열거 타입의 이름을 정하고 열거 타입 이름으로 소스파일 (.java)을 생성해야 함열거 타입 이름은 관례적으로 첫문자를 대문자로 하고 나머지는 소문자로 구성- 여러 단어로 구성된 이름이라면 단어 첫 문자는 대문자로 하는 것이 관례잘 만들어진 열거 타입 소스파일의 이름 EX)Week.javaM..

[Java] Calendar 클래스 2022.11.06

자바는 컴퓨터의 날짜 및 요일, 시간을 프로그램에서 사용할 수 있도록 하기 위해 다양한 클래스를 제공 EX) Date, Calendar, LocalDateTime 등 (LocalDateTime은 자바 8부터 지원하는 API) Calendar 클래스는 java.util 패키지에 있으므로 Calendar를 사용하기 위해 import 문이 필요함 import java.util.Calendar; Calendar 변수를 선언하고 Calendar.getInstance() 메소드가 리턴하는 Calendar 객체를 얻어야 함 Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR);//년 int month = now.get(Calendar.MON..

[Java] 향상된 for문 2022.11.01

자바 5부터 배열 및 컬렉션 객체를 좀 더 쉽게 처리할 목적으로 향상된 for문을 제공 반복 실행을 하기 위해 카운터 변수와 증감식을 사용하지 않음 배열 및 컬렉션 항목의 개수만큼 반복하고 자동적으로 for문을 빠져나감 for문의 괄호( ) : 배열에서 꺼낸 항목을 저장할 변수 선언과 콜론( : ), 배열을 나란히 작성 for문이 처음 실행될 때 ①배열에서 가져올 첫 번째 값이 존재하는지 평가 가져올 값이 존재하면 해당 값을 ②변수에 저장 후 ③실행문 실행 블록내부의 ③실행문이 모두 실행되면 다시 루프를 돌아 ①배열에서 가져올 다음 값이 존재하는지 평가 다음 항목이 존재하면 ②→③→①로 다시 진행 가져올 다음 항목이 없으면 for문 종료 for문의 반복 횟수는 배열의 항목 수 향상된 for문 사용 EX)..

[Java] 배열 복사 2022.11.01

배열은 한 번 생성하면 크기를 변경할 수 없음더 많은 저장 공간이 필요하다면 보다 큰 배열을 새로 만들고 이전 배열로부터 항목 값들을 복사해야 함 배열간 항목 값 복사for문 사용System.arraycopy() 메소드 사용 for문public class ArrayCopyByFor { public static void main(String[] args) { int[] oldIntArray = {1,2,3}; int[] newIntArray = new int[5]; for(int i=0; i실행 결과복사되지 않은 항목은 int[ ] 배열의 기본 초기값 0이 그대로 유지됨 System.arraycopy( )System.arraycopy(Object src, int srcPos, Object dest..

[Java] 객체를 참조하는 배열 2022.11.01

기본 타입 (byte, char, short, int, long, float, double, boolean) 배열은 각 항목에 직접 값을 가짐 참조 타입 (클래스, 인터페이스) 배열은 각 항목에 객체의 번지를 가짐 String은 클래스 타입이므로 String[ ] 배열은 각 항목에 문자열이 아니라 String 객체의 주소를 가짐 → 즉, String 객체를 참조 String[ ] 배열 EX) String[] strArray = new String[3]; strArray[0] = "Java"; strArray[1] = "C++"; strArray[2] = "python"; 배열 변수 strArray을 선언하고 3개의 문자열을 참조하는 배열 생성 String[ ] 배열의 항목도 결국 String 변수와 동일..

[Java] 다차원 배열 2022.11.01

2차원 배열 : 값들이 행과 열로서 구성된 배열 가로 인덱스와 세로 인덱스를 사용 자바에서의 2차원 배열 → 중첩 배열 방식으로 구현 EX) 2(행) x 3(열) 행렬 int[][] scores = new int[2][3]; 위 코드는 메모리에 세 개의 배열 객체를 생성 배열 변수인 scores는 길이 2인 배열 A를 참조 배열 A의 scores[0]은 길이 3인 배열 B를 참조 배열 A의 scores[1]은 길이 3인 배열 C를 참조 scores[0]과 scores[1]은 모두 배열을 참조하는 변수 역할을 함 각 배열의 길이 scores.length//2(배열 A의 길이) scores[0].length//3(배열 B의 길이) scores[1].length//3(배열 C의 길이) 생성 원리는 수학 행렬과..

[Java] 배열 타입 2022.10.31

배열이란? 변수는 한 개의 데이터만 저장할 수 있음 → 저장해야 할 데이터의 수가 많아지면 그만큼 많은 변수가 필요 EX) 학생 30명의 성적을 저장하고 평균 값 구하기 ① 30명의 성적을 저장하기 위해 변수 30개를 선언해야 함 int score1 = 85; int score2 = 90; int score3 = 87; ... int score30 = 75; ② 평점을 구하기 위해 변수들을 모두 더해야 함 int sum = score1; sum += score2; sum += score3; ... sum += score30; int avg = sum/30; "매우 비효율적이고 지루한 코딩" 만약 전교 학생들에 대한 성적을 처리한다면? 수백 개의 변수 선언을 해야함 같은 타입의 많은 양의 데이터를 다루는 ..