Java(35)
-
오버라이딩(overriding)
자바의 정석 Chapter 소제목 7. 객체지향 프로그래밍 2. 오버라이딩(overriding) 오버라이딩이란? 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것(재정의)을 오버라이딩이라고 합니다. 2차원 좌표계의 한 점을 표현하기 위한 Point클래스가 있을 때, 이를 조상으로 하는 Point3D클래스 - 3차원 좌표계의 한 점을 표현하기 위한 클래스 코드를 작성해보았습니다. class Point { int x; int y; String getLocation() { return "x :" +x+ ", y :" +y; } } class Point3D extends Point { int z; String getLocation() { // 오버라이딩 return "x :" +x+ ", y :" +y+ ..
2022.05.07 -
오버로딩(overloading)
자바의 정석 Chapter 소제목 6. 객체지향 프로그래밍 4. 오버로딩(overloading) 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 합니다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있습니다. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 ‘메서드 오버로딩’ , 짧게 줄여서 오버로딩이라 합니다. 오버로딩의 조건 오버로딩이 성립하기 위해서는 다음과 같은 조건을 만족해야 합니다. 💡 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 위 조건을..
2022.05.05 -
Scanner보다 빠른 입력 BufferedReader, StringTokenizer
알고리즘 문제를 풀 때 입출력을 좀 더 빠르게 해야 할 경우가 생깁니다. 그중 오늘은 입력 클래스를 정리하려 합니다. 저는 원래 쓰기 간편한 Scanner를 주로 이용하였었는데요, 같은 문제를 풀었을 때, Scanner와 BufferedReader를 사용했을 때의 처리속도가 2배 이상 난 경우도 있었습니다. 이번 포스팅 정리를 통해서 BufferedReader, StringTokenizer를 이해하는 시간을 가져보도록 하겠습니다. Scanner // Scanner 사용 시 입력 형태. Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // int String s1 = sc.next(); // String String s2 = sc.nextLine()..
2022.05.03 -
StringBuffer클래스와 StringBuilder클래스
자바의 정석 Chapter 소제목 9. java.lang패키지와 유용한 클래스 1.1.3 StringBuffer클래스와 StringBuilder클래스 알고리즘 문제를 풀거나 남들이 적어둔 코드를 보다 보면 문자열을 String이 아닌 StringBuffer 또는 StringBuilder를 사용해서 구현한 것을 볼 수 있었습니다. String클래스, StringBuffer클래스, StringBuilder클래스를 비교 분석하면서 관련 메서드까지 정리하는 시간을 가져보도록 하겠습니다. StringBuffer클래스 String클래스는 지정된 문자열을 변경할 수 없지만 StringBuffer클래스는 변경이 가능합니다.(mutable) 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며 , Strin..
2022.04.29 -
배열의 얕은 복사, 깊은 복사
자바에서 객체를 복사할 때는 얕은 복사, 깊은 복사가 있습니다. 얕은 복사의 경우 객체의 주소 값을 복사하는 것이고 깊은 복사는 실제값을 복사해서 이 값을 새로운 메모리 공간에 복사하는 것입니다. 얕은 복사의 경우 여러 객체가 같은 주소를 참조하고 있기에 하나의 값이 변경되면 다른 대상의 값 또한 변경되는 문제가 발생하지만 깊은 복사는 이러한 문제가 발생하지 않습니다. 1차원 배열의 얕은 복사(Shallow Copy) public class Copy { public static void main(String[] args) { int[] a = {1,2,3,4,5}; int[] b = a; System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 5] System..
2022.04.27 -
배열 오름차순, 내림차순 정렬하기
알고리즘 문제를 풀 때, 입력을 받은 후 정렬하는 경우가 많습니다. 저의 경우 오름차순은 여러 번 사용했던 터라 메서드를 알고 있었지만, 내림차순을 할 때는 잠시 망설였던 경험이 있습니다. 독자분들은 바로바로 사용하실 수 있게 이번 기회에 암기하고 가시면 좋을 것 같습니다. 공부 후 관련 알고리즘 문제까지 푸시는 것을 추천합니다. [백준 2217번] 로프 [백준 2217번] 로프 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는.. lealea.tistory.com 배열의 오름차순 정렬 Arrays.sor..
2022.04.25