본문 바로가기

분류 전체보기112

[JAVA] Scanner (스캐너) 클래스 자바에서 키보드로부터 데이터를 입력받는 방법 중 하나로 Scanner 클래스를 이용하는 방법이 있습니다. Scanner 클래스는 다음과 같이 생성합니다. Scanner scan = new Scanner(System.in); 다음은 Scanner 클래스의 주요 메소드입니다. 메소드 설명 next() 문자열을 공백 기준으로 한 단어씩 반환 nextLine() 한 줄 전체를 반환 nextInt() int 값으로 받아서 반환 nextDouble() double 값으로 받아서 반환 nextBoolean() boolean 값으로 받아서 반환 close() 자원 반납 import java.util.Scanner; public class ScannerTest { public static void main(String[.. 2022. 5. 29.
[JAVA] Calendar, SimpleDateFormat 클래스 ◆ Calendar 클래스 자바에서 날짜 데이터를 처리하기 위해 Calendar 클래스와 Date 클래스를 사용합니다. 하지만 Date 클래스 내 많은 메소드가 deprecated 되었기 때문에 날짜 조작은 주로 Calendar 클래스를 이용합니다. 다음은 Calendar 클래스의 주요 상수와 메소드입니다. 상수 설명 Calendar.YEAR 년도 반환 Calendar.MONTH 월 반환 (0~11) Calendar.DAY_OF_MONTH 일 반환 Calendar.DAY_OF_WEEK 요일 반환 Calendar.AM_PM 오전/오후 반환 Calendar.HOUR 시간 반환 Calendar.MINUTE 분 반환 Calendar.SECOND 초 반환 메소드 설명 getTime() 현재날짜를 Date 타입으로.. 2022. 5. 29.
[JAVA] Wrapper (래퍼) 클래스 자바에서는 8개의 기본 데이터 타입과 동일한 값을 표현할 수 있는 8개의 Wrapper 클래스를 제공합니다. 기본 데이터를 클래스로 둘러싸서 클래스가 제공하는 변수 및 메소드를 활용하고자 하는 목적으로 사용됩니다. 기본형 Wrapper 클래스 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean ◆ Wrapper 클래스의 주요 메소드 //문자열 "123"을 정수 123으로 변경 int strInt = Integer.parseInt("123"); System.out.println(strInt+10); //문자열 "3.14F"를 실수 3.14F로 변경 float strFloat = .. 2022. 5. 29.
[JAVA] StringTokenizer, split(), toCharArray() ◆ 문자열 나누기 - StringTokenizer, split() java.util.StringTokenizer는 문자열을 특정 구분자로 분리할 수 있는 클래스입니다. StringTokenizer 클래스를 다음과 같이 생성하고 사용할 수 있습니다. 생성자의 첫 번째 값으로 문자열을 설정하고, 두 번째 값으로 구분자를 지정합니다. 구분자를 생략하면 공백을 기준으로 분리합니다. StringTokenizer st = new StringTokenizer("홍길동,이순신,유관순", ","); String 클래스의 split() 메소드와 매우 비슷한 기능을 제공하는데, 다음과 같이 다소 차이가 있습니다. 구분 구분한 문자열 여러 구분자로 구분시 구분자가 두 문자 이상 공백 문자열 포함 StringTokenizer .. 2022. 5. 29.
[JAVA] StringBuffer 클래스 (StringBuilder) 지금까지 문자열을 생성할 때 String 클래스를 이용했습니다. 그런데 String 클래스는 한 번 생성된 문자열은 변경되지 않는다는 불변(immutable) 특징을 가집니다. 다양한 메소드로 문자열을 가공해도 기존 문자열은 변경되지 않고 새롭게 변경된 문자열이 생성되기 때문에, 문자열 연산시 메모리를 비효율적으로 사용하게 됩니다. 따라서 문자열이 자주 변경되거나 문자열 연산작업이 많은 경우에는 StringBuffer 또는 StringBuilder 클래스를 사용하는 것이 좋습니다. 이 클래스들은 문자열이 변경되어도 새로운 문자열이 생성되지 않고 저장된 문자열이 동적으로 변경되는 가변(mutable) 특징을 가집니다. StringBuffer와 StringBuilder의 사용법은 거의 유사합니다. Strin.. 2022. 5. 28.
[JAVA] 상속 - 추상 클래스와 인터페이스 상속을 적용하면 코드를 재사용하고 다형성, 오버라이딩 메소드 등을 이용하여 재사용성 및 유지보수를 향상시킬 수 있습니다. 하지만 상속은 강제성이 없습니다. 하위 클래스에서 상위 클래스의 메소드를 상속받아 사용하지 않고 자신만의 메소드를 사용하게 되면 상속의 장점을 얻을 수 없게 됩니다. 이 때문에 상위 클래스의 메소드를 반드시 사용하게끔 강제할 필요성이 생기는데, 추상 클래스와 인터페이스를 사용하면 상위 클래스의 메소드를 반드시 사용하도록 강제할 수 있어 재사용성 및 유지보수를 더욱 향상시킬 수 있게 됩니다. ◆ 추상 클래스 (abstract class) 클래스가 설계도라면, 추상 클래스는 미완성 설계도라고 할 수 있습니다. 블록({ }) 이 없는 추상 함수(abstract method)를 포함할 수 있.. 2022. 5. 28.
[JAVA] 상속 - 메소드 오버라이딩, 다형성 ◆ 메소드 오버라이딩 (method overriding) 일반적으로 상속 관계에서 부모 클래스의 메소드를 자식 클래스에서 조건 없이 사용 가능합니다. 그런데 자식 클래스에서 부모 클래스의 메소드를 재정의해서 사용할 수도 있는데, 이를 메소드 오버라이딩(method overriding)이라고 합니다. 메소드 오버로딩(method overloading : 이름은 같으나 매개변수가 다른 함수를 여러번 정의)과는 다른 개념입니다. 메소드 오버라이딩을 사용하기 위해서 우선 상속이 전제되어야 합니다. 그리고 부모 클래스에서 선언된 형식 그대로 자식 클래스에서 선언되어야 합니다. 즉, 메소드 이름, 리턴타입, 매개변수, 접근지정자 등이 동일해야 합니다. (더 작은 타입의 리턴타입과 더 넓은 범위의 접근지정자로 재정의.. 2022. 5. 27.
[JAVA] 상속 (Inheritance) 부모가 자식에게 물려주듯, 객체들 간 관계에서 부모 클래스(상위 클래스)가 자식 클래스(하위 클래스)에 클래스의 멤버를 물려주는 관계가 있는데, 이를 상속(Inheritance)이라고 합니다. 다음과 같은 형식으로 상속을 표현합니다. public class 자식클래스 extends 부모클래스 { } 상속이 적용되기 위해서는 객체들 간 is a 관계가 성립해야 합니다. 또한, 자바는 단일 상속만 지원하므로 extends 뒤에 부모클래스는 한 개만 올 수 있습니다. 이렇게 상속 관계를 표현해 주면 부모 클래스의 멤버(인스턴스 변수, 메소드)를 자식 클래스가 선언 없이 사용할 수 있게 됩니다. 가장 상위에 있는 최상위 클래스는 Object 클래스입니다. 모든 클래스는 Object 클래스를 묵시적으로 상속받습니.. 2022. 5. 26.
[JAVA] 클래스들의 관계 - has a 관계, is a 관계 ◆ has a 관계 한 객체와 다른 객체가 포함관계인 경우 has a 관계에 있다고 할 수 있습니다. 하나의 클래스 안에 다른 클래스가 인스턴스 변수로 선언된 경우입니다. 예를 들어 자동차 객체는 엔진 객체, 바퀴 객체와 같은 객체들로 구성되어 있습니다. 자동차 has a 엔진, 자동차 has a 바퀴 자동차 클래스 안에 엔진 클래스가 포함되어 있는 경우를 표현해 보겠습니다. public class Engine { String sn; //시리얼넘버 String year; //생산연도 public Engine() {} public Engine(String sn, String year) { super(); this.sn = sn; this.year = year; } public String getSn() {.. 2022. 5. 26.
[JAVA] 싱글톤 디자인 패턴 (Singleton Design Pattern) 싱글톤 디자인 패턴(Singleton Design Pattern)은 단 하나의 인스턴스만 생성하고자 할 때 사용하는 디자인 패턴입니다. 예를 들어 은행에서 계좌를 관리하는 프로그램을 만든다고 생각해 봅니다. 이때 계좌는 사용자마다 각각 존재해야 하지만, 이 계좌들을 관리하는 은행 객체는 단 하나만 있으면 됩니다. 이때 은행 객체를 단 하나만 생성하도록 제약을 걸 때 사용할 수 있는 것이 싱글톤 디자인 패턴입니다. 싱글톤 디자인 패턴을 적용하는 방법은 다음과 같습니다. (1) private 생성자 외부에서 객체를 생성하지 못하도록 생성자의 접근제한자를 private으로 지정합니다. private 접근제한자는 같은 클래스에서만 접근을 허용합니다. (2) static 키워드 이용, 객체 생성 단 하나의 객체는.. 2022. 5. 25.