abstract 추상클래스 : 멤버필드, 생성자, 메소드 (반드시 abstract키워드가 붙은 메소드가 1개이상 반드시 존재해야한다.)
인터페이스 : 추상메소드(접근제어자를 따로 작성하지 않으면 default가 아닌 public abstract 이 생성됨)만 가능 필드에는 상수만 가능
final class => 상속이 안된다
final 메소드 => 오버라이딩 안된다
final 상수 => 값 변경이 안된다
innerclass => 중첩클래스
익명 클래스 : 이너 클래스 중 1개
존재 영역 => 객체의 값에 위치 객체 생성시 생성자 뒤에
=> 메소드 매개변수로 존재
람다 표현식 ramda(이름이 없는 메소드)
제네릭 : 제네릭이란 JDK 1.5부터 도입한 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다
기본형식
class 클래스명<변수명(T,K,V,N,E)>{
멤버필드 => [접근제어자][제어자] 변수명 객체명
메소드 => [접근제어자][기타제어자] 변수명 메소드명 (변수명 객체명)
toString 메소드 특징 : 객체를 출력해도 주소 출력 전에 toString 이라는 메소드가 있으면 toString을 출력한다
Iteratar(반복) -> List(배열처럼 인덱스가 있음 , 중복값 허용) 객체명을 출력하면 값이 하나씩 출력됨
-> ArrayList: 클래스
Iteratar(반복) -> Set(순서가 없다 , 중복값 허용하지 않음) -> HashSet : 클래스
Map -> HashTable
-> Hashmap
key (아이디)
value (비밀번호)
예외처리 Exception
형식 try{}catch( ){}
메소드명Throws (책임전가형) //메인으로 에러를 보낸다 (자기자신이 처리하지 않음)
try~catch문 형식
1) try { 실행문; } catch(익셉션클래스 객체명){처리문;}
=>에러가 발생하면 처리문을 실행한다
2) try{ 실행문1; } catch(익셉션클래스 객체명){처리문들;}
catch(익셉션클래스2 객체명){처리문들;}
=>익셉션 하나 인식후 나머지는 무시한다
3)try{ 실행문 }
finaly{실행문}
=> finaly실행문은 반드시 실행이 된다 (안전한 코드)
class.forName => 클래스가 있는지 조사하거나 클래스의 정보를 담고있음
ClassNotFoundException // 클래스의 정보를 찾을 수 없을 때
ArrayIndexOutOfBoundsException // 배열의 규칙이 어긋나면
ArithmeticException //예외적 산술 조건이 발생 할 때
NumberFormatException // 숫자 형식 오류
Exception // 최상위 (익셉션을 여러개 사용 할 때는 가장 마지막에 기재)
char a [] = {'b',' ','A','5','한' };
for(int i = 0; i < a.length; i++) {
System.out.println("a[" + i + "] 요소 = " + a[i]);
if(Character.isDigit(a[i])) System.out.println(" :숫자");
if(Character.isLetter(a[i])) System.out.println(" :문자");
if(Character.isWhitespace(a[i])) System.out.println(" :공백문자");
if(Character.isUpperCase(a[i])) System.out.println(" :대문자");
if(Character.isLowerCase(a[i])) System.out.println(" :소문자");
}
> a[0] 요소 = b
:문자
:소문자
a[1] 요소 =
:공백문자
a[2] 요소 = A
:문자
:대문자
a[3] 요소 = 5
:숫자
a[4] 요소 = 한
:문자
Math.random() => 랜덤 숫자 출력
Math.abs(int) => 절댓값 구하기
Math.ceil(double) => 소숫점을 올림
Math.floor(double) => 소숫점 없앰
Math.rint(double) => 소숫점 반올림
Math.max(int int) => 숫자 비교후 큰 숫자 출력
Math.min(int int) => 숫자 비교후 작은 숫자 출력
nextInt(int) => 지정한 값 사이의 숫자를 임의로 지정해서 출력
nextFloat() => 0.0부터 1.0 사이의 임의의 실수 값
random.nextFloat() * 10 => 0.0부터 10.0 사이의 임의의 실수 값
nextBoolean() => 임의의 논리값
### 5일차
String메소드는 값이 변경 되면 새로운 메모리 할당을 받는다
시험
**StringBuffer** : 임시공간을 가지고 있어서 값이 변경이 되도 주소가 바뀌지 않는다 (기본 16개 임시공간을 가지고 있음)
* append 문자열 추가 할 때 사용하는 메소드 (StringBuffer에서 사용)
delete(int int) 지정한 두 숫자 사이의 인덱스 값을 삭제
ex>delete(4, 8)); //4 ~ 7 번 인덱스 까지 제거
deleteCharAt(int) 지정한 인댁스의 값을 삭제
insert(int String) 지정한 인덱스번호에 새로운 문자열을 추가한다
reverse 문자열을 역순으로 재배치
setCharAt(int Char) 지정한 인덱스번호에 새로운 문자로 교체한다
nextLine //enter로 종료를 인식
next nextInt //공백으로 종료를 인식
scanner.useDelimiter 분리자를 설정
**StringTokenizer** 문자열을 분해해서 배열로 받음
Arrays.fill(int[] a, int fromIndex, int toIndex, int val)
지정한 인덱스의 값을 바꿈
Arrays.sort() 배열의 순서를 오름차순으로 바꿈
Arrays.binarySearch() 배열의 인덱스 번호를 출력 (지정한 값이 배열에 없으면 - )
arraycopy 일반 자료형은 값을 복사하고 객체는 주소를 복사한다
clone() 값을 복사한다
Calendar 메소드
LocalDate 메소드 자주 사용됨
**FileWriter**
절대경로 : C://경로 부터 파일경로 까지
상대경로 : 내가 위치한 곳에서 바라보는 경로
..(같은 위치로 이동)/second/c.java
시험
문자열 대입 여부
제어문 조건문 배열 중 소스코드 결과 출력
문자열 지정 범위 결과값 마지막 지정숫자는 -1
상속 관계
접근 제어자 기타 제어자 권한
변수 정적 변수 기능들 키워드들 멤버필드 인스턴스 필드 위치
상속 받을 때 어떤 키워드 사용하는지
생성자 메소드 오버로딩(정의) 오버라이딩(정의)
혼합 연산자
15문제 단답형 1개 서술형 3개 객관식 11개