목록SSAFY (19)
꾸물꾸물 졔의 개발공부
자바에서의 표준입출력은 단방향이다 !!! 그렇기 때문에 , 입력 + 출력 2개가 기본적으로 필요함 입력 스트림과 함께 필터를 여러개 입혀서 쓸 수 있는데, 그렇게 되면 마지막 필터를 거친 결과가 자바에게 전달된다 - 파일, 입력스트림 ,문자열 등에서 데이터를 읽어서 토큰화 ( 의미있는 것으로 만듦 ) -> 다양한 타입으로 형번환 - 데이터 형번환의 편리 ( 입력은 byte 단위로 읽어들이지만, Scanner을 통해 바로 문자열로 입력받을 수 있음 ) - 하지만, 대량 데이터 처리시 수행시간이 느려질 수 있다 .. 그래서 나온것이 .... BufferedReader ( new InputStreamReader (System.in)) // system.in으로 받은 inputstream 형태를 reader의 ..
collection 인터페이스를 상속받느 자식인터페이스 - list /set + 그리고 map -list : ArrayList / LinkedList ( 순서 있음, 중복 허용 ) -set : HashSet / TreeSet ( 순서 x , 중복 x ) -map : HashMap / TreeMap ( 순서 x , 키 중복 x , 값 중복 혀용 ) [ List ] -ArrayList : 순차적 삽입 / 삭제에 용이, 단순 데이터 탐색에 빠름 -LinkedList : 비순차석 삽입/ 삭제에 용이, 순차적 접근은 오래 걸림 / 단순 현재에서 '이전' '다음' 은 빠름 [ Set ] : 꼭 넣은 순서대로 출력되지도 않음 !! ex) 만약 데이터셋에 8이 있는데, 8을 넣으면 ? 무시되어짐, -> 어짜피 같은 값..
Java 의 예외처리 : 오동작 (에러) / 비정상적 종료 (예외) - 에러 : 심각도높음 --> 디버깅 필요 - 예외 : 심각도 낮음 --> 코드로 수습이 가능함 : 예외 발생시, 비정상적인 종료를 막고, 정상적인 실행상태를 유지해야함 , 즉, 예외감지 + 예외발생시 동작 코드 필요 !!!! exception - checked : 예외에 대한 코드가 없으면 컴파일 불가능, 컴파일러가 예외에 대한 체크 함 !(RuntimeException) - unchecked : 컴파일은 진행되어짐, 컴파일러가 예외에 대한 체크 하지 않음 ! [ try - catch 문 ] try { // 예외가 발생할 수 있는 코드} catch ( xxException e ) {// 예외 발생시, 처리 코드 } ---> try 문에..
다양한 타입의 객체를 다루는 메서드 - 컴파일 시에 타입 체크 [ 기존 ] 어떤 타입의 객체를 모두 담을 수 있는 박스 : Object but, 그것에 접근하려고 하면 일일이 타입을 다 체크해야한다 instaceOf 연산자를 가지고, object 배열에 넣은 객체가 어떤 타입인지 확인할 필요 --> 번거로움 ↓↓↓↓↓ [ 제너릭스 ] 클래스나 인터페이스 선언시 클래스명 / 인터페이스명 뒤에 을 통해, 타입 파라미터를 표시해준다. ex) public class 클래스명 : 어떤 임의의 타입이 들어온다 !!! 타입이 명시되면, 그 타입의 객체만 들어갈 수 있기 때문에, 나중에 run 시에 일일일 instanceof 연산자로 확인할 필요x : 어떤 타입이든 제한 x
인터페이스 : 두개의 어떤 사이드 측면을 연결해주는것 ! ex ) GUI ( 사용자 인터페이스 ) = 사용자와 프로그램을 연결해주는 접점 사용자 ------------------------------------------------------ 이클립스 [ 저장 ]- 저장이 어떻게 되는지 ? - 사용자가 눌러주겠지?- 어떤 순서대로 되는지 ? - 그럼 난 저장만 해야지 관심없음 -> 구현부에 관심 -> 저장을 누르면 , 저장되겠지 ? 만 관심선언부만 관심 !! public abstract boolean save() ; @Override public boolean save() { // 구현 } 클래스와 비슷하게 작성함 ! public Interface 인터페이스_이름 { } - 인터페..
OOP 의 APIE 에서의 'A' : 추상화 -> 추상클래스 클래스를 정확하게 모두 정의하지 않고, 추상적으로 틀만 정의해놓은것 ? 이라고 생각해도 될까 .. ? 만약에 class A 와, class B에 똑같은 형태의 멤버메서드가 있다면, 중복된 코드 --> 너무 비효율적이다. => 공통부분을 부모클래스로 빼서, 그것을 상속받자, => 메서드 안에 구현부가 조금 다르더라도, 오버라이드를 통해 각각의 쓰임에 맞게 최적화 시켜서 재정의 하면됨 ! but, 그렇게 되면, 재정의하여서 사용하는 메서드는 부모클래스에서 쓸모가 없어진다. 1 2 3 4 5 6 7 8 9 10 11 public class Bike{ private int x, y ; public void Position() { System.out.p..
다형성 - APIE 의 p (oly ~ ) : 하나의 객체로 많은 타입을 가질 수 있음 ex) venom -> spiderman -> person -> object 의 순으로 상속할 때, spiderman 형의 객체 'tom' 을 만들면 , person p = tom; / person 형 object ob= tom; / object 형 모두 가능 하다 !! but, venom 형은 안됨 , 왜 ? person 과 object 를 상속한 spiderman 에는 person 과 object 의 특성이 모두 있음 즉, person 형으로 하든, object 형으로 하든 아무런 문제가 되지 않음 하지만, spiderman 에 venom 의 특성은 없다 . ---> venom 형으로 안됨 ( 다형성의 활용 ) 1..
상속 : Inheritance ( is a ) 기존 클래스의 멤버 -> 자식 클래스에서의 재사용 // 코드의 절감 및 유지보수성 향상 가능 + 생성자는 상속되지 않고, 멤버 변수나 멤버 메서드의 상속 - extends 키워드 사용 부모 클래스 : 상위 / 슈퍼 클래스 자식클래스 : 하위 / 서브 클래스 ** object 클래스 : 모든 클래스의 조상클래스로, 최상위 클래스이다. extends 를 별도로 하지 않으면 class 클래스 명 extends object 가 숨어있다. - 클래스에 따로 정의하지 않았을 때 숨어있는것 : 기본 생성자 / extends object - 같은 클래스를 상속한다고, 형제 클래스는 아님 !! 자바는 단일상속 ! if 다중상속을 하였을 때, 두개의 상위 클래스에 동일한 이름..