목록자바 (21)
Welcome! Everything is fine.
자바에서 java.lang.String 클래스의 다음과 같이 세 가지 메서드를 이용해 문자열을 변경할 수 있다. replace() replaceAll() replaceFirst() replace(CharSequence target, CharSequence replacement) replace() 메서드를 이용해 특정 문자열을 원하는 문자열로 대체할 수 있다. 정규식을 인자로 받을 수 있는 replaceAll()이나 replaceFirst() 와 달리 replace()는 대체할 문자열이 단순한 문자열일 경우 사용된다. String original = "Hello, World!"; String modified = original.replace("Hello", "Hi"); // 모든 Hello라는 문자열을 H..
자바에서 특정 부분 문자열을 추출하기 위해 java.lang.String클래스의 substring() 메소드를 사용할 수 있다. 해당 메소드는 다음과 같이 두 가지 버전이 있다. public String substring(int beginIndex) public String substring(int beginIndex, int endIndex) substring() 메소드는 원본 문자열을 변경하지 않고 새로운 문자열을 생성한다. substring(int beginIndex) beginIndex부터 맨 끝까지의 문자열을 리턴한다. public class SubstringExample { public static void main(String[] args) { String originalString = "H..
📌 접근지정자 어떤 클래스로부터 다른 클래스의 메소드와 필드의 수준을 통제하는 역할을 한다. 중요한 멤버에 대해서는 제한적 접근을 설정, 즉 뚜렷한 이유가 없다면 가능한 private를 사용한다. 일반적으로 상수를 제외하고 가능한 public 필드는 사용하지 않는 것이 좋다. public 필드로 인해 코드 수정이나 확장과 같은 변경에 있어서 융통성에 제약을 줄 수 있기 때문이다. 📌 클래스 접근지정자 ✔ 클래스 앞에 붙는 접근지정자는 2가지 → public, 접근지정자 생략(default) 접근지정자 설명 public 외부의 다른 클래스로부터 접근 가능 default(package-private) 같은 패키지 내에 있는 클래스에서만 접근 가능 ✔ 패키지란? 공통된 특성을 가진 클래스들의 모임! 📌 멤버 ..
💡 컬렉션 프레임워크 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 라이브러리이다. java.util 패키지에 구현되어 있다. 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있다. 여러 인터페이스와 구현 클래스 사용 방법을 이해해야 한다. 💡 Collection 인터페이스 하나의 객체를 관리하기 위한 메서드가 선언된 인터페이스. 하위에 List 인터페이스와 Set 인터페이스가 있다. 📃 List와 Set의 차이? List Map 요소가 중복되어도 상관없음 요소의 중복을 허용하지 않음 순서가 있음 순서는 상관없음 배열, Linked Lidt, Stack, Queue 등 HashSet, TreeSet 등 여러 클래스들이 Collection 인터페이스를 구현한다..
💡 제네릭 프로그래밍 제네릭 프로그래밍이란 여러 자료형이 대체될 수 있도록 프로그래밍하는 것이다. 즉, 하나의 자료형에 국한하지 않고 여러 자료형이 쓰일 수 있도록 프로그래밍 하는 것이다. 대부분의 컬렉션 프레임워크가 제네릭 프로그래밍 방식으로 구현되어있다. 제네릭 클래스 정의하기 제네릭 프로그래밍 방식으로 만든 제네릭 클래스에 는 매개변수 타입을 의미한다. 만들 때는 사용할 타입이 대체 될 곳에 문자 하나를 동일하게 쓰고 사용할 때는 그 문자 대신에 사용할 참조형 타입(클래스)을 쓴다. 자료형 매개변수 T type의 의미로 T를 많이 사용한다. 에서 는 다이아몬드 연산자라고 한다. 다이아몬드 연산자 내부에서 자료형은 생략이 가능하다. static 키워드는 T에 사용할 수 없다. T extends 클래스..
💡 인터페이스 요소 기존에는 상수와 추상메서드가 인터페이스의 구성요소였지만, 자바8 부터 다른 요소들이 추가되었다. 추가된 메서드는 다음과 같다. 메서드 설명 디폴트 메서드 default 키워드를 사용하며, 기본 구현을 가지는 메서드. 구현 클래스에서 재정의할 수 있다. 만약 재정의 하지 않으면 디폴트 메서드의 기존 내용이 들어간다. 하지만 재정의 할 수 있어도 인터페이스를 인스턴스화 할 수는 없다. 정적(static) 메서드 인스턴스 생성과 상관없이 인터페이스 타입으로 사용할 수 있는 메서드. 어떤 클래스가 그 인터페이스를 구현하지 않아도 인터페이스에 선언된 메서드를 new하지 않고 호출해서 쓸 때 사용한다. private 메서드 인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드. 인터페이스를..
💡 추상클래스(abstact class) 추상클래스는 구현코드 없이 메서드의 선언만 있는 추상메서드를 포함한 클래스를 말한다. 물론 추상메서드뿐만 아니라 구현메서드도 들어갈 수 있다. abstract 키워드를 사용하며, 추상클래스는 new(인스턴스화) 할 수 없다. 추상클래스는 상속을 하기 위해 만드는 클래스이기 때문에 자기 혼자 돌아가는 클래스가 아니다. 따라서 상위 클래스에서는 어떤 것을 보여줄지 정의하고, 하위 클래스에서 구체적으로 어떤 것을 보여줄지 구현한다. 즉, 상위 클래스에서 구현하지 못하고 하위 클래스에 위임해야하는 부분을 추상메서드로 만든다. 다음 코드는 구현 코드는 없지만 구현부는 존재하는 메서드다. public void display() {}; 그러나 다음 코드는 구현코드는 물론 구현..
💡 가상 메서드(virtual method) 가상 메서드란 인스턴스의 메서드가 호출되는 것을 말한다. 재정의가 되어있지 않은 경우 부모 클래스의 메서드를 호출하지만, 재정의가 되어있을 경우 메서드 영역은 2개가 된다. 이때 재정의된 자식 클래스의 메서드를 호출하는 것이다. 이 가상메서드에 의해서 다형성이 구현된다. 아래 코드를 예시로 들면, 부모 클래스인 Customer 클래스에서의 calcPrice()메서드는 자식 클래스인 GoldCustomer 클래스에서 기능이 더 추가되어야한다. 보너스 포인트 비율도 다르고, 할인도 해주기 때문이다. 그래서 GoldCustomer 클래스를 보면, calcPrice()메서드를 재정의하여 사용했다. public class Customer { protected int c..