📝상속 💬 부모 클래스의 멤버를 자식 클래스에게 물려준다.
📝 메소드 오버라이딩 💬 자식 클래스에서 부모 클래스에 선언된 메소드를 중복 작성하여 부모 클래스에 작성된 메소드를 무력화시키는 것이다.
📝 캐스팅(casting) 💬 타입 변환이라고 하며, 업캐스팅과 다운캐스팅으로 나뉜다.
📝 추상 클래스 💬 여러 (실제)클래스의 공통된 멤버를 추출해서 선언한 것이다.
📝 인터페이스 💬 개발 코드와 객체 사이에서, 객체에 따라 다른 메소드를 호출할 수 있도록 하는 중간 역할을 한다.
📒 문제 1 💬 Circle 클래스를 상속받은 NamedCircle 클래스를 작성하여, 다음 main()을 실행했을 때 다음 실행 결과와 같이 출력되도록 하라.
📝 접근 지정자 💬 클래스나 멤버들을 다른 클래스에서 접근해도 되는 지의 여부를 선언하는 지시어이다.
📝 Object 클래스 💬 모든 자바 클래스는 Object 클래스를 상속받는다.
📝 String 클래스 💬 문자열을 나타내며, 스트링 리터럴은 String 객체로 처리된다.
📝 Wrapper(포장) 클래스 💬 이름이 Wrapper인 클래스는 존재하지 않지만, 8개의 기본 타입을 객체로 다루기 위해 만들어 졌다.
📝 StringBuffer 클래스 💬 스트링을 다루는 클래스로서, 내부에 가변 크기의 버퍼를 가지고 문자의 개수에 따라 버퍼 크기를 자동 조절한다.
📒 문제 1 💬 다음 main()의 실행 결과 클래스명과 점 값을 연결하여 "MyPoint(3, 20)"이 출력되도록 MyPoint 클래스를 작성하라.
📝 컬렉션 💬 요소라고 불리는 객체들의 삽입, 삭제, 검색 기능을 갖춘 가변 크기의 컨테이너
💡 Vector<E> 💬 배열을 가변 크기로 다룰 수 있게 하며, 객체의 삽입, 삭제, 이동이 쉽도록 구성한 컬렉션 클래스
📒 문제 1 💬 Scanner를 사용하여 5개의 실수 값을 사용자로부터 입력받아 벡터에 저장하라. 그러고 나서 벡터를 검색하여 가장 큰 수를 출력하는 프로그램을 작성하라.
📝 GUI란? 💬 이미지 혹은 그래픽으로 그린 버튼, 메뉴 등을 가진 화면에 마우스와 같은 편리한 입력 도구를 이용하여 사용자가 편리하게 입출력할 수 있도록 만든 사용자 인터페이스
📝 스윙 GUI 프로그램 💡 JFrame : 프레임 역할을 하는 클래스
📝 배치관리자 💬 컨테이너에 부착되는 컴포넌트의 위치와 크기를 결정한다.
💡 FlowLayout 배치관리자 💬 생성자
📒 문제 1 💬 다음 그림과 같이 "Let's study Java"라는 문자열을 타이틀로 가지고 프레임의 크기가 400×200인 스윙 프로그램을 작성하라
💡 이벤트 관련 용어 💬 이벤트 소스 : 이벤트를 발생시킨 GUI 컴포넌트
📝 이벤트 리스너 💬 이벤트를 처리하는 자바 프로그램 코드로서 컴포넌트에 연결되어야 작동되며, 클래스로 작성된다.
📝 Key 💬 Key 이벤트는 사용자가 키를 입력할 때 발생하는 이벤트이다.
📒 문제 1 💬 JLabel 컴포넌트는 Mouse 이벤트를 받을 수 있다. JLabel 컴포넌트의 초기 문자열을 "내림"라고 출력하고, 레이블에 마우스를 올리면 "올림"으로, 내리면 "내림"이 다시 출력되도록 프로그램을 작성하라.
➕ 상속 구조 JComponent는 추상 클래스이며, 스윙 컴포넌트들이 상속받는 많은 공통 메소드와 상수들을 구현하고 있다. 또한 새로운 컴포넌트를 만들려면 반드시 JComponent를 상속받아 만들어야 한다.
💡 JTextField 💬 한 줄의 문자열을 입력받는 창을 만들 수 있다.
📝 메뉴 💡 메뉴 구성 ㆍ메뉴아이템 : JMenuItem을 이용하여 생성
📒 문제 1 💬 다음 그림과 같이 "파일", "편집", "보기", "입력" 의 4가지 메뉴를 가진 스윙프로그램을 작성하라. "보기"메뉴에만 "화면확대", "쪽윤곽"의 2개의 메뉴아이템이 있고 그 사이에는 분리선이 있다.
📝 그래픽 💡 문자열 그리기 💬 메소드 : drawString()
💡 도형 칠하기 : 내부 칠하기 💬 메소드
📒 문제 1 💬 다음과 같이 출력하는 프로그램을 작성하라.
📝 자바 스레드 💬 스레드(태스크) : 운영 체제(자바에선 자바 가상기계가 함)에 의해 관리되는 하나의 작업
📝 스레드 종료 ㆍ스스로 종료 ㆍ강제 종료 💡 스스로 종료 💬 run() 메소드가 종료하거나 리턴하는 경우 종료된다.
📝 입출력 스트림 💬 응용프로그램과 입출력 장치를 연결하는 소프트웨어 모듈 (+ java.io)
📝 File 클래스 💬 파일에 관한 속성 정보를 제공하고, 파일 관리 작업을 지원 💬 파일 입출력 기능 X
📝 substring 함수 💡 String substring(int index)
📝 소수 문제 풀기 💬 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열이 매개변수로 주어질 때, 배열에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 알려주세요.
📝 IntStream 함수 💬 함수 💡 .range
📝 약수 문제 풀기 💬 first부터 second까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 출력하세요. 💡 .sqrt() 함수 사용
📝 BufferedReader 📝 BufferedWriter
📝 String ➞ int 💡 Integer.parseInt(): int type을 return 💡 Integer.valueOf(): Integer 객체를 return
📝 배열에서 중복 원소 제거하기 💡 HashSet: 배열의 순서를 보장하지 않음. 💡 LinkedHashSet: 배열의 순서를 보장. 💡 TreeSet: 배열의 순서를 보장하지 않으며, 오름차순 정렬. 💡 distinct()
📝 각 단위 숫자 구분 💡 백준 4673번 문제 관련
📝 등차수열 💡첫째항부터 같은 값으로 더해지는 수열(연속된 두 개의 수의 차이가 일정한 수열) 💡공차 d : 등차수열에서 이웃한 두 항의 변화량 💡일반항 = a + (n-1)d 💡등차수열의 합의 일반항 = n(a1 + an)/2
📝 아스키코드 💡 Char ➞ int 💡 Char ➞ ASCII 💡 String ➞ Char 💡 String ➞ ASCII 💡 int ➞ Char
📝 StringBuilder - String은 불변이기 때문에 StringBuilder은 이러한 String의 기존 데이터에 더하는 방식을 사용할 수 있음. - 장점 - 속도가 빠름: 더하는 문자열들이 길수록 더욱 효과적 - 부하가 적음
📝 Root Interface 💡Collection interface 💡Map interface 📝 Collection Interface
📝 윤년: 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때
📝 List Interface 💡 LinkedList 💡 Vector 💡 ArrayList 💡 Stack
📝 Set Interface💡 메소드 💡 HashSet 💡 TreeSet 💡 LinkedHashSet
📝 Map Interface 💡 메소드 💡 HashMap 💡 Hashtable 💡 LinkedHashMap 💡 TreeMap
📝 정렬 O(n²): 중첩 반복문 사용 ⇝ 비효율적 💡 버블 정렬 💡 선택 정렬 💡 삽입 정렬
📝 정렬 O(n logn) 💡 퀵 정렬 💡 병합 정렬 💡 힙 정렬
📝 Array 정렬 💡 Arrays.sort() 📝 ArrayList 정렬 💡 Collections.sort() 💡 Comparator.Order()
💡 소수 : 1과 자기 자신으로만 나누어지는 수 💡 직접 구현 💡 Math.sqrt() 메소드 사용 💡 에라토스테네스의 체
📝 삼항연산자 💡 if-else 조건문을 짧게 표현하는 방법 (조건A)? (반환값A) : (반환값B) - (조건A) 가 참이면 (반환값A) 반환, 거짓이면 (반환값B) 반환
📝 Enhanced For Loop (향상된 for문) 💡 배열이나 리스트를 for문에서 사용할 때 유용한 방법 "for(대입받을 변수 정의 : 배열)"
📝 스택 (stack) - 자바에서 사용되는 기본적인 자료구조 - java.util.Stack 클래스를 import 해야함 - Stack<타입> 변수명 = new Stack<타입>();
📝 큐 (Queue) 자바에서 사용되는 기본적인 자료구조 Queue<타입> 변수명 = new Queue<>();
📝 덱 (Deque) 큐(Queue)와 스택(Stack)을 합쳐 놓은 형태로 큐의 양쪽에서 데이터를 넣고 뺄 수 있다.
📝 진수 변환 💡 10진수 → N진수 Integer.toString(10진수, N)을 사용해 변환 가능
📝 숫자 뒤집기 숫자를 주면 뒤집어서 다시 똑같은 타입으로 리턴하도록 한다.