3주차

김예지·2022년 7월 8일
0

1일차

abstract 추상클래스 : 멤버필드, 생성자, 메소드 (반드시 abstract키워드가 붙은 메소드가 1개이상 반드시 존재해야한다.)

  • [접근제어자] abstract class 클래스명{}
  • 추상클래스는 객체생성을 할 수 없다
  • 상속 받는 자식클래스한테 오버라이딩 필수

인터페이스 : 추상메소드(접근제어자를 따로 작성하지 않으면 default가 아닌 public abstract 이 생성됨)만 가능 필드에는 상수만 가능

  • interFace 인터페이스명{ 상수 ([public static final(생략)]int MAX = 5;) 추상 메소드 }
  • class => interFace -> implements(상속 받을 때 사용) ex 자식클래스 implements 인터페이스(여러개 가능)
  • 자식클래스 extends 추상or일반클래스 implements 인터페이스(여러개 가능)

2일차

final class => 상속이 안된다
final 메소드 => 오버라이딩 안된다
final 상수 => 값 변경이 안된다

innerclass => 중첩클래스

    1. 내부 : 인스턴스
  • 내부 정적 클래스 static 기타 제어자 사용
  • 메서드안에 존재하는 지역 클래스
  • 익명 클레스

익명 클래스 : 이너 클래스 중 1개
존재 영역 => 객체의 값에 위치 객체 생성시 생성자 뒤에
=> 메소드 매개변수로 존재

람다 표현식 ramda(이름이 없는 메소드)

  • 형식 : (매개변수) -> 실행문
  • 람다식은 무조선 인터페이스(1개)만 가능

3일차

제네릭 : 제네릭이란 JDK 1.5부터 도입한 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다

기본형식
class 클래스명<변수명(T,K,V,N,E)>{
멤버필드 => [접근제어자][제어자] 변수명 객체명
메소드 => [접근제어자][기타제어자] 변수명 메소드명 (변수명 객체명)

toString 메소드 특징 : 객체를 출력해도 주소 출력 전에 toString 이라는 메소드가 있으면 toString을 출력한다

Iteratar(반복) -> List(배열처럼 인덱스가 있음 , 중복값 허용) 객체명을 출력하면 값이 하나씩 출력됨

-> ArrayList: 클래스
Iteratar(반복) -> Set(순서가 없다 , 중복값 허용하지 않음) -> HashSet : 클래스
Map -> HashTable
-> Hashmap
key (아이디)
value (비밀번호)

  • ArrayList는 칸을 추가 할 때 add()메소드를 사용한다 (add(숫자, 값) => 지정한 칸에 값이 추가 된다)
  • size() List : 칸의 개수 set : 요소 개수
  • set() 메소드 지정한 칸의 데이터를 지우고 새로운 데이터를 삽입
  • remove() 메소드 해당 칸의 값을 지운다 (만약 인덱스번호가 아닌 값으로 지정하면 중복된 값이 있어도 순서대로 가장 첫번째 값만 지워진다)
  • Arrays.asList(저장 할 값을 작성) 메소드 값을 add메소드를 사용하지 않아도 자동으로 인덱스에 저장한다
  • clear() 메소드 객체안의 값을 다 지움
  • isEmpty() 메소드 객체안의 값이 비워졌는지 확인

4일차

  • put() 메소드 Hashmap 데이터 추가 할 때 사용 (add기능을 한다) (k,v)
  • keySet() 메소드 key에 있는 데이터만 떼온다
  • valur값을 받을 때는 Collection을 사용

예외처리 Exception
형식 try{}catch( ){}
메소드명Throws (책임전가형) //메인으로 에러를 보낸다 (자기자신이 처리하지 않음)
try~catch문 형식
1) try { 실행문; } catch(익셉션클래스 객체명){처리문;}
=>에러가 발생하면 처리문을 실행한다
2) try{ 실행문1; } catch(익셉션클래스 객체명){처리문들;}
catch(익셉션클래스2 객체명){처리문들;}
=>익셉션 하나 인식후 나머지는 무시한다
3)try{ 실행문 }
finaly{실행문}
=> finaly실행문은 반드시 실행이 된다 (안전한 코드)

  • e.printStackTrace(); : 예외 발생 당시의 호출 스택에 있는 메소드의 정보와 예외 메시지를 화면에 출력

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개 
profile
나만의 방식을 찾아가는 신입신입 개발자

0개의 댓글