배열은 자료 구조의 하나이며, 자료형의 기준으로 따지자면 참조형의 하나이다. 변수는 하나의 데이터만을 저장할 수 있는 반면, 배열은 여러 개의 데이터를 저장할 수 있는 집합 자료형이다. 배열에는 같은 자료형과 같은 성격을 가지고 있는 데이터를 집합으로 넣을 수 있다. 프로그래머에게 요구되는 필수 요소에는 문제해결능력인 알고리즘과 데이터를 관리하는 자료구조가 있는데, 배열은 이중 자료구조에 속하는 중요한 요소이다. 💡배열의 문법 자료형[] 배열명 = new 자료형[길이]; int[] nums = new int[3]; // 길이(방의 개수): 3 // 인덱스(방 번호): 0 ~ 2, 0 ~ 길이 - 1 // 방 1개(데이터): 요소(Element) JVM에서 new 예약어를 사용하면 메모리 어딘가에 int[..
분기문을 이용하면 개발자가 코드의 흐름을 원하는 곳으로 이동할 수 있다. 분기문의 종류로는 break, continue, goto가 있으며, goto는 가독성을 떨어트린다는 이유로 JDK 1.5 때 폐기되었다. 분기문은 다른 제어문과 함께 사용하며, 독립적인 사용이 불가능하다는 특징이 있다. 💡break문 break는 자신이 속해 있는 제어문을 탈출하는 역할을 한다. Unreachable code 오류 break문을 만나면 하던 일을 멈추고 무조건 탈출을 한다. 오류가 나는 이유는 들어오자마자 break문을 만나 탈출하기 때문에 도달할 수 없는 코드가 되었기 때문이다. /* for (int i = 1; i 1번 ~ 30번 for(int i = 1; i
반복문을 이용하면 특정 코드를 개발자가 원하는 횟수만큼 반복 제어하여 생산성을 향상하고, 유지보수성을 향상시킬 수 있다. 반복문의 종류로는 for, while, do while, for(foreach)가 있다. 이때, foreach는 향상된 for문(Enhanced for statement)을 의미한다. 💡for문 for (초기식; 조건식; 증감식){ 문장; } for문은 초기식, 조건식, 증감식으로 구성되며 소괄호 안에 문장을 3개 넣을 수 있다. 반복문은 증감식을 만나면 반복문을 나오지 않고, 다시 초기식으로 돌아간다는 특징이 있다. 1. 초기식: 루프 변수(i)를 초기화한다. 2. 조건식: 루프 지속 유무를 결정한다. 3. 증감식: 루프 변수에 변화를 주는 역할을 한다. (언젠가 루프를 탈출할 수 ..
제어문은 수많은 명령어들의 흐름(실행 순서)을 통제하는 수단을 의미한다. 제어문의 끝에 문장 종결자(;)를 사용하지 않는다는 특징이 있다. 제어문은 크게 조건문(조건 제어문)과 반복문(반복 제어문)으로 구분할 수 있다. 먼저 조건문에 대해 알아보도록 하자. 조건문은 개발자가 조건을 제시한 후 조건의 결과에 따라 흐름을 제어할 수 있다. 조건문의 종류로는 if문과 switch문이 있다. 💡if문 if (조건식) { 문장; } else if (조건식) { 문장; } else { 문장; } if문은 선언부와 구현부로 구분되며, 조건식은 boolean을 가지는 표현식이 오면 된다. 조건(boolean)을 제시하면 조건식이 참인 경우에만 블록({}) 안의 문장이 실행된다. 블럭을 생략하고도 if문을 사용하는 게 ..
💡Date 클래스 Date date = new Date(); System.out.println(date); Date 클래스는 실제 표준 시가 아닌 컴퓨터의 시각을 가져온다. 따라서 사용자가 컴퓨터의 시간을 변경하면 출력하는 날짜 또한 바뀌게 된다. 이 시간은 대략적으로 신뢰할 수는 있지만, 시간을 정각에 맞춰야 하는 일이 있을 경우에는 사용하지 않는 것이 좋다. 💡Calendar 클래스 Calendar c1 = Calendar.getInstance(); System.out.println(c1); /* java.util.GregorianCalendar[time=1689838475429,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util .c..
메소드마다 이름을 다르게 하여 기능을 명확하게 할 수도 있지만, 프로젝트가 커질수록 메소드의 개수 또한 많아지므로 모두 기억하고 사용하기 어렵다. 이때 사용할 수 있는 게 메소드 오버로딩이다. 메소드 오버로딩은 메소드 이름을 통일하여 여러 개 정의하는 것을 의미하며, 이때 메소드의 매개변수의 개수, 순서, 또는 타입이 다르도록 하여 중복 정의가 가능하다. 동일한 이름의 메소드가 다양한 상황에서 사용되며, 메소드 호출 시 전달되는 인자의 타입이나 개수에 따라 적합한 메소드가 자동으로 선택되어 개발을 편하게 해 준다. 이러한 구현이 어렵지 않으므로 실제로 많이 사용되는 기술이기도 하다. 그럼, 메소드를 여러 개 선언해 보면서 위의 조건이 어떻게 적용되는지 알아보도록 하자! 💡메소드 오버로딩 구현 가능 조건 ..
이클립스에서 반복적으로 사용하는 코드는 이클립스 코드 조각에 넣어두면 사용하기 편리하다. 이렇게 코드 조각에 넣은 코드는 Ctrl + Space 단축키를 눌러 실행시킬 수 있다. 저장되어 있는 코드 조각을 확인해보고, 참고하여 반복적으로 사용하는 코드를 추가해보도록 하자. 이클립스에서 Window(윈도우) 메뉴를 열고 Preferences(환경 설정)를 선택한다. Preferences 창에서 Java > Editor > Templates를 선택한 뒤, New 버튼을 클릭하여 새 코드 조각을 추가할 수 있다. 💡println() 메소드 내장되어 있는 println() 메소드를 살펴보면 다음과 같다. Name: sysout Description: print to standard out Pattern: Sys..