본문 바로가기

✏️Java 공부18

[Java 공부/기타] 객체 정렬하기 (Comparable & Comparator) 백준 문제를 풀다 보면 정렬이 필요한 문제가 종종 나온다. 대부분의 경우 Arrays.sort()나 Collections.sort()를 호출하여 해결할 수 있지만 정렬에 추가적인 조건이 붙었거나, 사용자가 정의한 객체를 정렬하게 될 경우 추가적인 작업이 필요하다. 이를 위해 필요한 Comparable과 Comparator에 대해 알아보고, 활용하는 법을 배워보자. Comparable Comparable 인터페이스는 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다. int[] arr = {1, 3, 5, 7, 2, 4, 6}; Arrays.sort(arr);//arr이 {1, 2, 3, 4, 5, 6, 7}로 정렬 위 예제는 int형 배열을 정렬하는 코드다. Arrays.sort()를 호출하면 컴퓨터가 .. 2022. 8. 1.
[Java 공부/기타] Java 형 변환 정리 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 형 변환 (casting)이라고 한다. 자바를 쓰다 보면 자료형 간에 형 변환을 해야 하는 경우가 생긴다. 이번 글에서는 형 변환하는 방법을 정리해 보겠다. 1. 정수형 ↔️ 실수형 정수형 변수(byte, short, int, long)와 실수형 변수(float, double)는 기본형 변수에 속하기 때문에 자유롭게 형 변환이 가능하다. 기본형 변수 간에 형 변환은 형 변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여주기만 하면 된다. Integer ➡ Double, Float int i = 3; float f = (float) i;//Integer to Float double d = (double) i;//Integer t.. 2022. 7. 31.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 7 (내부 클래스) 객체지향 프로그래밍의 마지막 글이 될 거 같다. 내부 클래스는 클래스 내에 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 내부 클래스는 사용빈도가 높지 않으므로 내부 클래스의 기본 원리와 특징을 이해하는 정도로도 충분하다. 내부 클래스 내부 클래스는 클래스 내에 선언된 클래스이다. 클래스에 다른 클래스를 선언하는 이유는 두 클래스가 서로 긴밀한 관계에 있기 때문이다. 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점을 얻을 수 있다. 내부 클래스의 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. - 코드의 복잡성을 줄일 수 있다.(캡슐.. 2022. 7. 9.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 6 (인터페이스) 인터페이스 인터페이스는 일종의 추상 클래스다. 인터페이스는 추상 클래스처럼 추상 메서드를 갖지만 추상 클래스보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다. 추상 클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도'라 할 수 있다. 인터페이스의 작성 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같다. 다만 키워드로 class 대신 interface를 사용한다는 것만 다르다. 그리고 interface에도 클래스와 같이 접근 제어자로 public 또는 def.. 2022. 7. 8.