코딩 62

[Java] 기본 API 클래스⑤ BigDecimal 클래스

what? 정확한 소수점 연산을 할 때 사용하는 클래스 why? double과 long으로 소수점 연산을 할 때 오차가 발생할 수 있음. 이를 보완 how? 1)생성 double 또는 long 타입 변수를 문자열로 변환한 뒤 BigDecimal 클래스 생성자에 파라미터로 넣어 생성 double a = 53.56743; BigDecimal number = new BigDecimal(String.valueOf(a)); 2)값 계산 double a = 24.3953; double b = 50.343998; System.out.println(a+b); //74.7392979999999 BigDecimal number = new BigDecimal(String.valueOf(a)); BigDecimal numbe..

Java 2024.04.03

[Java] 기본 API 클래스④ Scanner 클래스

what? 문자데이터를 읽어오는 클래스 File, InputStream, String, Readable 등의 타입을 읽어옴 how? 1) 화면으로 입력받기: System.in Scanner sc = new Scanner(System.in); String input = sc.nextLine(); 입력받을 값의 타입에 따라 사용하는 메서드가 달라짐 String: nextLine() int: nextInt() boolean: nextBoolean() byte: nextByte() short: nextShort() long: nextLong() 2) 파일에서 값 읽어오기: FileInputStream //파일이 없을 수 있기 때문에 예외 처리 필요 try{ //Scanner 인스턴스 생성: FileInputSt..

카테고리 없음 2024.04.03

[Java] 기본 API 클래스③ Random

what? java.util 안의 클래스 무작위값을 얻을 때 사용 how? 시드값에 따라 값 반환. 시드값이 같으면 같은 값 추출 시드값은 Random 클래스의 인스턴스를 생성할 때 생성자 파라미터로 설정 시드값 미지정시 currentTimeMilis()를 시드값으로 해서 값 추출 int nextInt() 무작위 int값 반환 int nextInt(int n) 0보다 크고 n보다 작은 int값 반환 boolean nextBoolean 무작위 boolean값 반환 long nextLong() 무작위 long값 반환 double nextDouble() 무작위 double값 반환 float nextFloat() 무작위 float값 반환 Random random = new Random(); Random seed..

Java 2024.04.03

[Java] 기본 API 클래스② currentTimeMilis, Calendar, Date

1. System.currentTimeMilis() what? System 클래스의 currentTimeMilis() 메서드 현재 운영체제의 시간을 long 타입으로 반환 1970년 1월 1일을 기준으로 현재까지의 시간. 밀리초(1/1000) 단위로 환산해서 보여줌 how? //시작 시각 측정 long start System.currentTimeMilis(); System.out.println("시작 시각: " + start); //실행부 int a = 0; for(int i = 0; i Date //Date 타입 변수에 Calendar 클래스의 Time 대입 Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); Syste..

Java 2024.04.03

[Java] 기본 API 클래스① 문자열 클래스

what? String 클래스에 정의되어있는 문자열을 다루는 메서드 why? 프로그래밍 중 문자열을 나누고 자르거나 이어붙이는 등 편집해야 할 때 사용한다. how? 1)concat() 문자열 결합. +로도 가능하며, +는 문자열 외에 다른 자료형도 결합할 수 있다. 2)charAt(), length() charAt(index): 인덱스의 위치에 있는 문자를 반환 length(문자열): 문자열의 길이 반환 3)indexOf(문자/문자열) 문자나 문자열이 어디에 위치하는지 알려줌 4)substring(인덱스, 인덱스) 문자열을 잘라낸다.(인덱스: 잘라낼 위치) 인덱스를 두 개 사용하면 첫 번째 인덱스부터 두 번째 인덱스 전까지 잘라낸다. 5)equals(문자열), contentEquals(문자열) 문자열의..

Java 2024.04.02

[Java] 익명 클래스

what? 이름 없는 클래스 why? 코드의 간결성을 높이기 위함 한 번만 사용할 클래스를 익명 클래스로 작성하면 작성과 인스턴스 생성이 동시에 되기 때문에, 불필요한 클래스 파일을 만들지 않아도 된다. how? 기존의 클래스를 이용하되 오버라이딩 class ClassA{ void methodA(){ System.out.println("methodA"); } void methodB(){ System.out.println("methodB"); } } class ClassB{ ClassA classA = new ClassA(){ //메서드 오버라이딩 void methodA(){ System.out.println("ClassB 안의 methodA"); } }; //익명 클래스는 끝에 세미콜론 필요 classA..

Java 2024.04.02

[Java] 내부 클래스

what? 클래스 안에 있는 클래스. 내부 클래스는 외부 클래스의 모든 멤버를 자신의 멤버처럼 사용 가능 why? 두 클래스 멤버들 사이에 서로 쉽게 접근→코드 간결 클래스 내부에 클래스를 감추어 캡슐화 how? class OuterClass{ class InnerClass{ } } 내부 클래스는 클래스의 멤버변수처럼 구별됨 class OuterClass{ //인스턴스 클래스 class InnerInstance{ } //스태틱 클래스 static class InnerStatic{ } //지역 클래스 void methodA(){ class InnerLocal(){ } } } 내부클래스에 제어자 사용 가능 abstract private, protected... 외부 클래스 생성 후 외부 클래스를 통해 내부 ..

Java 2024.03.31

[Java] 인터페이스

what? 객체간 상호작용을 위한 규약 why? 협업을 위한 틀 여러 명이 같이 작업할 때 구현해야 할 기능을 미리 협의한 뒤 반환타입을 정해두면 효율적으로 작업 진행 가능 how? interface Interface1{ //상수 public static final int exampleInt = 0; //메서드 public abstract void exampleMethod(); } 제어자를 생략해도 컴파일러가 자동으로 추가함 상속과 달리 extends 대신에 implements로 구현 오버라이딩으로 메서드 구현(인터페이스의 접근제어자보다 더 넓거나 같은 범위의 제어자를 사용해야 함) 인터페이스와 다형성 특정 인터페이스를 구현한 클래스는 인터페이스 타입의 참조변수로 참조 가능 interface Exampl..

Java 2024.03.31

[Java] 추상 메서드와 추상 클래스

1. 추상 메서드 what? 선언부만 정의되고 구체적인 내용은 비어있는 메서드 why? 상속한 클래스에서 사용할 메서드 양식을 정해두기 위함 how? 제어자 abstract 추가 abstract void abstractMethod(); 2. 추상 클래스 what? 추상 메서드를 멤버로 가지는 클래스. 추상 메서드가 하나라도 포함되면 추상 클래스임 why? 자손 클래스에 문법적인 제한을 주기 위한 틀 how? 추상 메서드가 하나라도 포함되면 클래스명 앞에 제어자 abstract를 붙여야 함 abstract class AbstractClass{ abstract void abstractMethod(); }

Java 2024.03.31

[Java] 상속과 다형성⑤ 제어자

what? 클래스 또는 멤버(변수와 함수)의 사용을 제어 why? 1. 접근 제어 2. 클래스 멤버로 설정 3. 내용 또는 값 변경 막음 how? 1)접근 제어자 public: 접근 제한 x protected: 같은 패키지 안의 클래스와 자손 클래스에서만 접근 가능 default: 같은 패키지 내에서만 접근 가능(따로 표기하지 않아도 설정되는 기본값) private: 같은 클래스 내에서만 접근 가능 2)static 변수나 함수를 클래스 멤버로 설정 →클래스가 처음 메모리에 로드될 때 생성 →인스턴스 생성 없이도 사용 가능 3)final 내용이나 값의 변경을 막음 (1)final 변수: 값 변경 x, 상수 (2)final 메서드: 내용 변경 x → 오버라이딩 불가 (3)final 클래스: 내용 변경 x →..

Java 2024.03.30