JAVA
-
Java Scanner 대신 BufferedReader 사용해보기JAVA 2022. 11. 30. 14:05
BufferedReader의 경우 키보드의 입력이 있을 때마다 한 문자씩 버퍼(buffer)로 전송하며 버퍼가 가득차거나 개행 문자가 나타나면 버퍼의 내용을 한 번에 전송하기 때문에 속도가 scanner에 비해 빠르다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Main { public static void main(String[] args) { System.out.println("PassWord Making"); System.out.print("id = "); t..
-
[Java] 성적 조회 프로그램 만들기JAVA 2022. 11. 3. 17:21
지금까지 배운 내용으로 만들어본 성적 조회 프로그램 필요한 기능 성적 입력 학번, 이름, 영어 점수, 수학 점수를 입력받는다. 성적 조회 개인의 성적을 조회한다. 학번, 이름, 영어 성적, 수학 성적, 평균 점수, 전교 등수를 출력한다. 전교생의 성적을 조회한다. 전교 등수대로 출력된다. 전교 등수, 이름, 학번, 영어 점수, 수학 점수, 평균 점수를 출력한다. 과목별 통계 과목명, 최고 점수, 최저 점수, 평균 점수를 출력한다. 프로그램을 종료 소스코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); Map map = new HashMap();..
-
[자바의 정석] 날짜와 시간, 형식화 정리JAVA 2022. 10. 25. 01:01
Calendar Calendar는 java.util.Calendar로 import 할 수 있으며 추상클래스이다. getInstance()를 통해 구현된 객체를 얻을 수 있습니다. import java.util.Calendar Calendar cal1 = new Calendar(); // Error! 추상클래스는 인스턴스를 생성할 수 없다. Calendar cal2 = Calendar.getInstance(); // OK! Date와 Calendar간의 변환 // 1. Calendar를 Date로 변환 Calendar cal1 = Calendar.getInstance(); Date d1 = new Date(cal1.getTimeInMillis()); // Date(long date) 생성자 사용 // 2...
-
[자바의 정석] Object, String, StringBuffer 클래스 정리JAVA 2022. 10. 21. 17:28
Object Class Object class는 모든 클래스의 최고 조상이며 오직 11개의 메서드만을 가지고 있다. equals(Object obj), hashCode(), toString()은 상황에 맞게 적절히 오버 라이딩해야 한다. Object class에 있는 11개의 메서드에 대해 알아보기 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다. protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출 이때 수행되어야 하는 코드가 있는 경우에만 오버 라이딩한다. public Class getClass() 객체 자신의 클래..
-
[자바의 정석] 예외처리JAVA 2022. 10. 19. 18:31
예외처리 (Exception handling) 프로그램 오류에는 컴파일 에러, 런타임 에러로 나눌 수 있습니다. 런타임 에러에는 다시 에러(Error)와 예외(Exception)로 나뉩니다. 종류 의미 컴파일 에러 컴파일 할 때 발생하는 에러 런타임 에러 실행 할 때 발생하는 에러 런타임 에러 종류 의미 에러 (Error) 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 (Exception) 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외의 경우는 꼭 예외 처리를 해줘야한다. 예외 처리는 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것을 말한다. 예외처리 구문 예외를 처리하려면 try - catch문을 사용해야 한다. try{ // 예외가 발생할 가능성이..
-
[자바의 정석] 추상클래스 인터페이스 내부클래스 정리JAVA 2022. 10. 19. 09:58
추상 클래스(Abstract class) 클래스를 설계도라고 하면 추상 클래스는 미완성된 설계도를 말하며 다른 클래스의 작성을 돕기 위하 목적으로 사용됩니다. 추상 클래스는 추상 메서드를 포함하고 있는 클래스를 말합니다. 일반 메서드는 추상 메서드를 호출할 수 있습니다. 추상 클래스는 인스턴스를 생성할 수 없습니다. abstract class Player{ // 추상 클래스 int currentPos; Player(){ currentPos = 0; } abstract void play(int pos); // 추상 메서드 abstract void stop(); // 추상 메서드 void play(){ // 오버로딩 play(currentPos); // 추상 메서드 호출 } } 추상 메서드(Abstract ..
-
[자바의 정석] 제어자 & 다형성JAVA 2022. 10. 18. 11:40
제어자(modifiers) 제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여하며 크게 접근 제어자와 그 외의 제어자로 나눠집니다. 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있지만 접근제어자는 단 하나만 사용할 수 있다. 접근 제어자 : public, protected, default, private 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp 그 외의 제어자 알아보기 static - 클래스의, 공통적인 static이 사용될 수 있는 곳은 멤버 변수, 메서드, 초기화 블록이다. 대상 의미 멤버변수 1. 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다. 2..
-
[자바의 정석] 상속 & 오버라이딩 & package & importJAVA 2022. 10. 17. 18:39
상속 (Inheritance) 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것을 말하며 이렇게 작성된 클래스와 기존 클래스는 서로 부모와 자식으로 관계를 맺어지게 됩니다. 자식은 부모의 모든 멤버를 상속받습니다. (단, 생성자 및 초기화 블록은 제외됩니다.) 자식의 멤버개수는 부모보다 적을 수 없습니다. 단일 상속을 원칙으로 한다. class Point{ int x; int y; } class Point3D extends Point{ int z; } Point3D p = new Point3D(); p.x = 1; // OK p.y = 2; // OK p.z = 3; // OK 상속 관계 공통 부분은 부모에서 관리하고 개별 부분은 자식에서 관리하게 만들며 부모의 변경은 자식에게 영향을 미치지만 자식..