전체 글 89

27. 컬렉션 프레임 워크 (1)

컬렉션 프레임워크 java.util패키지에는 자료를 다룰 수 있는 자료구조 클래스가 다수 존재합니다. 자료구조 클래스들을 컬렉션 프레임워크라고 한다. 자료구조란 자료를 저장할 수 있는 구조 책을 보관하기 위해서 책장을 이용하는 것처럼 다양한 자료들을 다양한 방식으로 관리하기 위한 방법이 필요한데, 이러한 방법을 제공하는 것을 자료구조, 컬렉션 프레임워크이다. 컬렉션 프레임워크에서 가장 기본이 되는 interface는 Collection인터페이스 Collection인터페이스는 여기에 자료가 있다라는 것을 표현. 중복도 허용하고, 자료가 저장된 순서도 기억하지 못하는 것이 Collection인터페이스. Collection이 가지고 있는 대표적인 메소드는 add(), size(), iterator() 메소드 ..

JAVA 2021.03.29

25. 스트링버퍼 / 스트링 클래스의 문제점

1) 스트링버퍼 아무 값도 가지고 있지 않은 StringBuffer객체를 생성 출력결과 : hello world StringBuffer가 가지고 있는 메소드들은 대부분 자기 자신, this를 반환 자기 자신의 메소드를 호출하여 자기 자신의 값을 바꿔나가는 것을 메소드체이닝 이라고 한다. StringBuffer클래스는 메소드 체인 방식으로 사용할 수 있도록 만들어져 있다. 앞에서 5줄로 작성했던 코드를 위와 같이 한 줄로 수정할 수 있습니다. StringBuffer는 append메소드 외에도 길이를 구하거나, 자르거나 등의 다양한 메소드들을 가지고 있습니다. 2) 스트링 클래스의 문제점 String클래스는 문자열을 다룰때 사용하는 클래스 String클래스는 불변클래스 이다. 실행결과 기존의 str1은 전혀..

JAVA 2021.03.29

24. java.lang 패키지/오토박싱

1) java.lang 패키지/오토박싱 자바는 기본적으로 다양한 패키지를 지원 그중에서 가장 중요한 패키지 java.lang패키지의 클래스는 import를 하지 않고도 사용할 수 있다. java.lang패키지에는 기본형타입을 객체로 변환시킬때 사용하는 Wrapper클래스가 있다. Boolean, Byte, Short, Integer, Long, Float, Double 클래스 모든 클래스의 최상위 클래스인 Object도 java.lang패키지 문자열과 관련된 String, StringBuffer, StringBuilder도 모두 java.lang패키지 화면에 값을 출력할때 사용했던 System클래스도 java.lang패키지 수학과 관련된 Math클래스도 java.lang패키지 Thread와 관련된 중요 ..

JAVA 2021.03.29

23. 사용자 정의 Exception

사용자 정의 Exception Exception 클래스를 상속 받아 정의한 checked Exception 반드시 오류를 처리 해야만 하는 Exception 예외 처리하지 않으면 컴파일 오류를 발생 시킨다. RuntimeException 클래스를 상속 받아 정의한 unChecked Exception 예외 처리하지 않아도 컴파일 시에는 오류를 발생시키지 않는다. RuntimeException을 상속받은 BizException객체 BizService클래스는 업무를 처리하는 메소드를 가지고 있다고 가정한다. 앞에서 만든 BizService를 이용하는 BizExam클래스 매개변수 값을 -1을 넘길때는 Exception이 발생하기 때문에 try catch블록으로 처리한다.

JAVA 2021.03.29

22. 예외처리

1) Exception 프로그램실행중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을 예외 처리라고 한다. 위 코드에서 j를 0으로 바꾸면 Excption 발생 j를 0으로 바꾸면 ArithmeticException이 발생하면서 프로그램이 종료된다. Java는 정수를 정수로 나눌때 0으로 나누면 안된다.0으로 나누면 오류가 발생하는 것입니다. 예외 처리 프로그래머는 j라는 변수에 0이 들어올지도 모르는 예외 상황을 미리 예측하고 처리할 수 있다. 예외처리하는 문법 오류가 발생할 예상 부분을 try라는 블록으로 감싼 후, 발생할 오류와 관련된 Exception을 catch라는 블록에서 처리한다. 오류가 발생했든 안했든 무조건 실행되는 finally라는 블..

JAVA 2021.03.29

21. 인터페이스

1) 인터페이스 만들기 인터페이스: 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템 인터페이스 정의하는 방법 추상 메소드와 상수를 정의 할 수 있다. 인터페이스에서 변수를 선언하면 컴파일시 자동으로 아래와 같이 바뀐다. 인터페이스에서 정의된 메소드는 모두 추상 메소드이다. 위에서 선언된 모든 메소드는 컴파일 시에 다음과 같이 자동으로 변경된다. 2) 인터페이스 사용하기 인터페이스 사용하는 방법 인터페이스는 사용할때 해당 인터페이스를 구현하는 클래스에서 implements 키워드를 이용한다. 인터페이스가 가지고 있는 메소드를 하나라도 구현하지 않는다면 해당 클래스는 추상클래스가 된다.(추상클래스는 인스턴스를 만들 수 없음) 참조변수의 타입으로 인터페이스를 사용할 수 있다. 이 경..

JAVA 2021.03.29

20. 클래스 형변환

1) 클래스 형변환 부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다. 자식객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환 해야 한다. 형변환 상속관계란 is a 관계라고 말했었습니다. "Bus는 Car다." 라는 관계가 성립되는 것이죠. 현실에서도 우리는 버스를 가리키면서 차다. 라고 말하곤 합니다. 부모타입으로 자식객체를 참조할 수 있다. 부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다. ppangppang()메소드를 호출하고 싶다면 Bus타입의 참조변수로 참조해야 한다. 객체들 끼리도 형변환이 가능하다. 단 상속관계에 있었을 때만 가능하다. 부모타입으로 자식타입의 객체를 참조할 때는 묵시적으로 형변환이 일어난다. 부모타입의..

JAVA 2021.03.29

19. 오버라이딩

1) 오버라이딩 오버라이딩이란 부모가 가지고 있는 메소드와 똑같은 모양의 메소드를 자식이 가지고 있는 것이다. 즉 오버라이딩이란 메소드를 재정의 하는 것이다.메소드 오버라이딩 Car 클래스를 상속받은 Bus 클래스는 부모클래스가 가진고 있는 run() 메소드를 잘 사용한다. Bus클래스에 부모가 가지고 있는 메소드와 모양이 같은 메소드를 선언 BusExam을 실행해 보도록 하겠습니다. "Bus의 run메소드"가 출력된다. 메소드를 오버라이드 하면, 항상 자식클래스에서 정의된 메소드가 호출된다. 오버라이딩 한다고 해서 부모의 메소드가 사라지는 것은 아니다. super 키워드를 이용하면, 부모의 메소드를 호출 할 수 있다.

JAVA 2021.03.29

18. super와 부모생성자

1) super와 부모생성자 class가 인스턴스화 될때 생성자가 실행되면서 객체의 초기화를 한다. 그 때 자신의 생성자만 실행이 되는것이 아니고, 부모의 생성자부터 실행된다.부모 생성자 생성자 테스트 결과 Car의 기본생성자입니다. Bus의 기본생성자입니다. new 연산자로 Bus객체를 생성하면, Bus객체가 메모리에 올라갈때 부모인 Car도 함께 메모리에 올라간다. 생성자는 객체를 초기화 하는 일을한다. 생성자가 호출될 때 자동으로 부모의 생성자가 호출되면서 부모객체를 초기화 하게된다. 2) super 자신을 가리키는 키워드가 this 라면, 부모들 가리키는 키워드는 super super() 는 부모의 생성자를 의미한다. 부모의 생성자를 임의로 호출하지 않으면, 부모 class의 기본 생성자가 자동으..

JAVA 2021.03.29