JAVA 실행 ( JDK 설치 , 환경변수 설정)
Eclipse 설치, 개발환경 설정
CLASS(클래스)의 구조 및 주석/출력문/표기법
객체화와 추상화, 소괄호의 의미, Constructor(생성자)
멤버변수와 지역변수, 변수의 명명규칙, 대명사 this
Data Type 의 종류, 결합, 데이터형 변환
연산자의 종류 : 산술 연산자, 증감 연산자, 논리 부정 연산자, 논리 연산자, 비교 연산자, 할당 연산자, 삼항 연산자
Scanner import, Scanner( ) 메소드
try-catch 문, 예외 발생 종류, try-catch 응용
문자열(String)을 byte, short, int, long 타입으로 형변환
wrapper 클래스
대문자/소문자 변환, 대문자/소문자/숫자 확인, ASCII 코드 (char 문자형 참고)
Index, .charAt( ) 이용
Boxing, Auto Boxing, UnBoxing, Auto UnBoxing
void Method, return이 필요한 Method / 메소드 마무리 / 유효성검사 (올바른 데이터인지 아닌지 메소드를 이용하여 검사)
valueOf( )
.equals() -> 문자열의 값 비교할 때 이용
calculator 응용 => / (나누기) 는 분모가 0 이 있으면 안되고, 소수점 1자리만 나오게 하고 싶은 경우
반올림 => Math.round(double a) / 올림 => Math.ceil(double a) / 내림 => Math.floor(double a) / 절대값 => Math.abs(int)
IF문
switch(비교대상){case 1 : 실행문 break; default : return} / 비교대상값에 부등호 사용 불가
반복문(loop) 중 for 문 / for(초기화; 조건식; 증감식){반복해서 실행할 문장;} / 응용1. break; 응용2. continue;
누적의 합 sum에 저장 / String 을 이용하여 "+" 와 "=" 적용 / 삼항연산자를 통해 String 타입 add 적용
sum 구하는 식에 입력한 값이 int 타입 범위 내 숫자가 아닌 경우
isUpperCase() : 대문자인지 확인 / isLowerCase() : 소문자인지 확인 / isDigit : 숫자인지 확인
행과 열을 나타낼 때는 이중 for 문이 더 쉽다. / => 바깥 for문 : 행 , 내부 for 문 : 열
레이블과 .equalsIgnoreCase를 이용하여 구구단 만들기
%s -> string 타입 / %d -> decimal(10진법) (double X) / %f -> float 타입
구구단 4단씩 끊기
while(조건식) { 조건식이 참(true)이라면 반복해서 실행할 명령문을 실행하고, 조건식이 거짓(false)이라면 while의 { } 이부분을 빠져나간다. 반복해서 실행할 명령문; 증감식; }
변수초기화; do{ 반복해서 실행할 명령문; 증감식; } while(조건식); // 조건식이 참일 경우 반복실행 // 조건식이 거짓이여도 무조건 do{} 속 명령문을 1번 실행하고 벗어난다
소수 : 몫이 1이나 자기 자신뿐인 수 / > 자신보다 작은 수를 나누기를 했을 때, 나머지가 '0' 인 경우가 있을 경우 소수가 아니다.
Random rndom = new Random(); / rndom.nextInt(마지막 수 - 처음수 + 1) + 처음수;
charAt(i)를 이용하여 공백지우기 / trim : 양쪽 공백지우기 / isEmpty : 값이 안에 비어있는지 참거짓
배열 선언 / 크기 할당 / 배열에 데이터값 넣기
한국 ) 1~45번 공, 6번 꺼내기 / 방법 1. 비교 후 같지 않으면 저장하기 / 방법 2. 저장 후 비교하여 같으면 돌아가서 다시 저장하기(덮어쓰기)
1. 아이디에 공백을 입력할 경우 / 2. 아이디를 중복 입력할 경우 / 3. 비밀번호 제한주기 / 4. 성명 제한주기 / 5. 회원 정원이 초과할 경우 / 6. 회원 조회하기
학생들의 과목 성적, 총점, 평균, 학점, 등수, 각 과목들의 총점과 평균
toCharArray -> 문자열을 char타입의 배열로 만든다. // substring-> 시작인덱스에 적힌 글자부터 끝인덱스에 적힌 글자까지를 나타낸다. // indexOf -> 문자열에서 최초로 나오는 "찾을문자열"의 인덱스를 알려준다.
split -> "문자열"을 "구분자"로 잘라서 String 타입의 배열로 만든다. // String.join -> 문자열배열을 "합칠구분자"로 합쳐서 String 타입으로 변환한다.
\escape 문자라고 부른다. // 쌍따옴표 넣기, \ 넣기
toString() : 문자열로 변환 / ※ valueOf 도 가능한 기능
글자길이 2글자(3의 배수 X) | 콤마의 개수 2/3 => 0 / 글자길이 3글자(3의 배수 O) | 콤마의 개수 3/3 => 1이지만, 3의 배수이므로 '-1' 하여 콤마의 개수 => 1-1 = 0
indexOf 이용한 방법과 split, String.join 을 이용한 방법
StringBuffer - 게임에 적합 / StringBuilder - 웹에 적합 // StringBuilder 초기화방법 1.setLength(0), 2.new StringBuilder() // 문자열 거꾸로 뒤집기 .reverse()
Date import 종류, SimpleDateFormat : 보기쉽게 나타내기, 날짜타입 .format 의 종류, 유효한 날짜인지 검사하기 -> setLenient // 문자열을 날짜형태로 변환
compareTo() // date1 = date2 ==> 0 //date1 < date2(미래) ==> < 0 // date1(미래) > date2 ==> >0 // before, after
Calendar 메소드
OOP 4가지 특징 ( 상속성, 추상화, 캡슐화, 다형성)
Abstraction (추상화) - 실제 데이터들을 모델링하는 기술
1. 정규표현식 패턴을 작성 -> Pattern p = Pattern.compile("^[글자1개의 패턴}$"); // 패턴과 일치하는지 확인 -> Matcher m = p.matcher(userid) // 판별 -> 일치하면 m.matches():true
가장 중요한 데이터 보호 기술 // 접근제한자(접근지정자, accessmodifier) // 캡슐화된 field 외부에서 사용할 경우 => getter, setter
상속성 중복제거 목적으로 하는 기술
메소드의 오버라이딩(overriding) == 메소드의 재정의
Overloading => 동일한 메소드명을 사용하고 싶을 경우 // 이름은 같지만 파라미터가 다르면 동일한 메소드로 취급 X
오버라이딩과 오버로딩의 공통점과 차이점
abstract method >> 미완성 메소드 (== 추상 메소드)
다형성 => 자식클래스로 생성되어진 객체를 부모 클래스 타입으로 받을 수 있다. // 자식클래스 배열을 부모클래스로 합칠 경우
field 을 붙이면 더 이상 새로운 값으로 할당할 수 없다.
미완성메소드(추상메소드) 와 field 는 final 변수로만 이루어지고, 접근제한자는 public 으로만 이루어진다. // 사용법 : 클래스명 implements 인터페이스명
try~catch // throws~catch
Collection => 크기 무한정, 객체이면 무엇이든 입력 가능, 객체타입 모두 들어가는 저장소, 저장 크기 무한, list의 크기 : .size
Collection 타입 : List 계열, Map 계열
HashMap, HashSet=> Map 계열 // Iterator 이용
주로 어플리케이션으이 환경설정과 관련된 속성(property) 저장하는데 사용하며, 데이터를 파일로부터 읽고 쓰는 편리한 기능 제공
인터페이스를 구현한 클래스가 한 곳에서만 사용할 경우 새로운 클래스를 생성하지 않아도 된다.
함수형인터페이스명 @ = ( a, b ) -> {실행명령문};
기본 입출력 스트림
1바이트 기반 스트림Node(접속점) Stream파일이 없다면 자동으로 생성되지만 폴더는 반드시 존재해야 한다.
File 과 Directory 다루기
Filter Stream 은 Node Stream 을 보조하는 역할