-
[자바의 정석] Ch.9-2. java.lang패키지와 유용한 클래스스터디플래너/공부하기 2022. 4. 6. 22:30
2. 유용한 클래스 2.1. java.util.Objects클래스 Object클래스의 보조 클래스로 Math클래스처럼 모든 메서드가 'static' isNull() / nonNull() / requireNonNull() 은 객체의 비교나 널 체크에 유용함. static boolean isNull(Object obj){ /*null이면 true, null이 아니면 false*/ } static boolean nonNull(Object obj) {/* null이 아니면 true, null이면 false */ } static T requireNonNull(T Obj){ /*null이 아니면 실행, null이면 NullPointerException */ } compare()는 두 비교대상이 같으면 0, 크면 양..
-
[자바의 정석] Ch.9 lang패키지와 유용한 클래스스터디플래너/공부하기 2022. 3. 29. 08:18
1. java.lang패키지 java.lang 패키지는 자바프로그래밍의 가장 기본이 되는 클래스 → import문 없이 java.lang패키지 사용 가능 1.1 Object클래스 Object 클래스는 멤버변수 없이 11개의 메서드가 있으나 notify(), notifyAll(), wait() 메서드는 쓰레드와 관련된 것으로 쓰레드에서 학습 clone() 자신을 복제하여 새로운 인스턴스를 생성. Object클래스의 clone()은 인스턴스변수의 값만 복사하기 때문에 참조타입의 인스턴스 변수가 있는 클래스는 완전히 복제할 수 없음. 다른 메소드와 마찬가지로 clone메소드를 오버라이딩하여 각 클래스의 목적에 맞게 사용해야 함. clone메소드를 통해 복제하려면 인스턴스의 데이터를 보호하기 위해 Cloneab..
-
[자바의 정석] Ch.8 예외처리스터디플래너/공부하기 2022. 3. 22. 23:02
예외처리(exception handling) 프로그램 오류 프로그램 실행 중 어떤 원인에 의해 오작동하거나 비정상적으로 종료되는 경우 → 프로그램 에러/오류 프로그램 오류는 발생시점에 따라 컴파일 에러(compile-time error)와 런타임 에러(runtime error)로 나눔 컴파일 에러(compile-time error): 컴파일 할 때 발생하는 에러 런타임 에러(runtime error): 프로그램 실행도중에 발생하는 에러 논리적 에러(logical error): 실행되지만 의도한 것과 다르게 동작하는 에러 컴파일이 잘 되었어도 실행중 에러에 의해 잘못된 결과를 얻거나 비정상적으로 종료될 수 있음. 자바에서 실행 시(runtime) 발생할 수 있는 프로그램 오류를 에러(error)와 예외(e..
-
[자바의 정석] Chapter07-3. 객체지향 프로그래밍2스터디플래너/공부하기 2022. 3. 15. 08:02
추상 클래스(abstract class) 추상 클래스란? 이 핸드폰은 아이폰6이거나 아이폰6S이다. 아니면 아이폰7일 수 있고 아이폰 SE2나 SE3일 지도 모른다. 같은 외관을 갖고있지만 칩이나 카메라같은 내부 성능에 따라 다른 모델의 핸드폰이 될 수 있다. 이 아이폰의 외형은 몇 세대라고 정확히 말할 수 없지만 그래도 아이폰 X, 11, 12, 13세대는 아니다. 따라서 아이폰6를 새로 만들고, 아이폰 SE3를 설계도부터 새로 만드는 것보다 이렇게 동일한 외관의 설계도를 두고 내부 설계만 달리하는 것이 훨씬 효율적일 것이다. 추상클래스는 추상 메서드를 포함하고 있는 클래스로, 클래스를 설계도에 비유하면 추상클래스는 미완성 설계도라 할 수 있다. 추상클래스는 추상매서드를 포함한다는 점을 제외하면 일반 ..
-
[자바의 정석] Chapter07-2. 객체지향 프로그래밍2스터디플래너/공부하기 2022. 3. 1. 21:38
제어자(modifier) 제어자란? 제어자란 클래스, 변수, 메서드의 선언부에서 각각의 부가적인 의미를 부여하는 역할을 한다. public, default, protected, private 접근제어자와 그 외의 것들로 나눌 수 있다. 제어자는 하나의 대상에 여러가지로 조합하여 사용할 수 있으나 접근 제어자는 네 가지 중 하나만 사용할 수 있다. static - 클래스의, 공통적인 static은 '클래스의', '공통적인'이란 뜻을 갖고있다. 클래스변수, 즉 static멤버변수는 하나의 변수를 모든 인스턴스가 공유하기 때문에 인스턴스와 관계 없이 같은 값을 갖는다. 제어자 대상 의미 static 멤버변수 - 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다. - 클래스변수는 인스턴스를 생성하지 않고도..
-
[자바의 정석] Chapter07-1. 객체지향 프로그래밍2스터디플래너/공부하기 2022. 2. 21. 22:49
상속(inehritance) 상속의 정의와 장점 그릭요거트 전문점에 손님이 와서 과일요거트를 주문했다. 아르바이트생인 당신은 주문을 받고 그릭요거트를 만들기 위해 우유를 사러 가는게 편한가 아니면 미리 만들어둔 그릭요거트에 과일을 올려 나가는게 편할까? 당연히 후자가 편하다. 그릭요거트를 만들어 두면 주문을 받을 때마다 요거트를 만들 필요 없이 기존의 요거트에 손님이 주문한 토핑만 얹으면 된다. 상속을 이용하는 이유도 이와 비슷하다. 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 정의하는 것이다. 상속받아 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 클래스를 공통적으로 관리하여 추가와 변경이 쉽다. 따라서 코드의 재사용성을 높이고 중복을 제거할 수 있다는 장점이 있다. 클래..
-
[자바의 정석] Chapter06-2. 객체지향프로그래밍1스터디플래너/공부하기 2022. 2. 14. 08:19
오버로딩(Overloading) 오버로딩이란 메서드도 변수처럼 같은 클래스 내에서 서로 다른 이름을 가져야 한다. 하지만 매개변수의 개수나 타입이 다르다면 한 클래스 내에서 이미 사용하는 메서드의 이름과 같은 이름으로 메서드를 정의할 수 있다. 이렇게 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩(method overloading) 또는 오버로딩(overloading)이라 한다. 오버로딩의 조건 오버로딩이 성립하기 위해서는 1. 메서드의 이름이 같아야 하고, 2. 매개변수의 개수 또는 타입이 달라야 한다. 이 두가지 조건을 만족하지 못하면 중복 정의로 간주되어 컴파일할 때 에러가 발생한다. 오버로딩된 메서드는 매개변수에 의해 구분할 수 있으므로 반환타입이 다르더라도 메서드의..
-
2월 13일 기록스터디플래너/공부하기 2022. 2. 13. 23:23
오늘은 프로그래머스에서 문제를 풀었다. 차례대로 정복하기 위해 레벨 1의 Java 언어를 골라 뒤에서부터 차근차근 풀었다. 그렇게 어렵지는 않았지만 문제의 자료형을 제대로 읽지 않아 오류가 발생한 경우가 여러 차례 있어 신경써야했다. 또 문자열을 다루는 경우에는 공백에 대한 처리도 신경을 써야했다. 테스트케이스의 결과값과 출력값이 일치했지만 실제로 채점을 해보면 틀린 경우가 많았는데 대부분 이 공백에 대한 처리를 신경쓰니 해결할 수 있었다. char → String, char → int 등 형변환하는 것도 많았다. 공부할 땐 그러려니 하고 넘어간 부분들이었는데 정리를 해야할 것 같다. 백준 단계별로 풀다 함수의 셀프넘버와 한수의 벽에 부딪혀 프로그래머스를 풀어보았는데 백준과 다른 매력이 있다. 둘다 차례..