목록분류 전체보기 (162)
EEALL@ONCE
`calendar.add`와 `calendar.set`은 `Calendar` 객체에서 날짜 및 시간을 조작하는 데 사용되는 메서드입니다. 그러나 이 두 메서드 간에는 중요한 차이가 있습니다: 1. `calendar.add`: - `calendar.add` 메서드는 지정된 필드에 대한 값을 추가하거나 뺄 수 있습니다. 예를 들어, `Calendar.MONTH` 필드에 -1을 더하면 월을 하나 뺄 수 있습니다. - 예를 들어, `calendar.add(Calendar.MONTH, -1)`은 현재 날짜에서 한 달을 뺍니다. 즉, 이전 달로 이동합니다. 2. `calendar.set`: - `calendar.set` 메서드는 지정된 필드의 값을 설정하고 다른 필드는 그대로 둡니다. 예를 들어, `Calendar..
1. **Final 필드**: - `final`로 선언된 필드는 한 번 초기화되면 값 변경이 불가능합니다. - 필드를 선언 시 또는 생성자에서 초기화해야 합니다. 초기화 후에는 수정이 불가능하므로, 필드의 값을 나중에 변경할 수 없습니다. 2. **Final 메서드**: - `final`로 선언된 메서드는 자식 클래스에서 오버라이드(재정의)할 수 없습니다. - 부모 클래스에 정의된 `final` 메서드는 그대로 사용되며, 자식 클래스에서 변경할 수 없습니다. 3. **Final 인스턴스**: - `final`로 선언된 인스턴스는 다른 객체로 변경할 수 없습니다. - 그러나 필드의 값은 변경 가능합니다. 객체의 내부 상태나 데이터를 수정하는 것은 허용됩니다. 주의할 점은 주소(참조)를 바꿀 수 없다는 것입..
`Path filePath`와 `File file = filePath.toFile();` 차이 1. `Path filePath`: 이 부분은 Java의 NIO (New I/O) 패키지에서 도입된 클래스인 `Path`를 이용한 것입니다. `Path`는 파일 경로나 디렉토리 경로를 나타내는 객체입니다. 이를 사용하여 파일 경로를 추상화하고 다양한 파일 작업을 수행할 수 있습니다. `Path`는 Java 7 이후에 추가된 개념으로, 더 유연하고 안전한 파일 작업을 지원합니다. 2. `File file = filePath.toFile();`: 이 부분은 `Path` 객체를 `File` 객체로 변환하는 것입니다. `File` 클래스는 이전 버전의 Java에서 주로 사용되던 파일 처리 클래스입니다. Java 6까지..
접근 제어자는 클래스, 메서드, 필드 등의 멤버에 적용되며, 해당 멤버에 접근할 수 있는 범위를 지정합니다. 아래에서 각 접근 제어자의 의미와 사용 범위에 대해 설명하겠습니다. 1. **public:** 해당 멤버는 어디서든 접근 가능합니다. - 해당 클래스 안에서: ✅ - 동일 패키지 안에서: ✅ - 동일 패키지 또는 자손 클래스 안에서: ✅ - 다른 패키지 포함 어느 곳에서든: ✅ 2. **protected:** 해당 멤버는 동일 패키지 내에서는 접근 가능하고, 다른 패키지의 자손 클래스에서도 접근 가능합니다. - 해당 클래스 안에서: ✅ - 동일 패키지 안에서: ✅ - 동일 패키지 또는 자손 클래스 안에서: ✅ - 다른 패키지 포함 어느 곳에서든: 3. **default (package-privat..
**캡슐화 (Encapsulation)란?** 캡슐화는 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이는 데이터와 해당 데이터를 다루는 메서드를 하나의 단위로 묶는 것을 의미합니다. 이렇게 함으로써 데이터에 대한 직접적인 접근을 제한하고, 외부에서 오는 오용이나 혼란을 방지할 수 있습니다. 예를 들어, 클래스 내부에 데이터와 데이터 조작을 위한 메서드를 함께 묶어놓는 것이 캡슐화의 핵심입니다. 이러한 데이터와 메서드는 private, protected, public과 같은 접근 제어자를 사용하여 외부로부터의 접근을 제한할 수 있습니다. 이를 통해 클래스 내부 구현의 일부를 감추고, 클래스를 더욱 견고하고 관리하기 쉬운 형태로 만들 수 있습니다. 아래는 자바에서 클래스 내의 캡슐화를 보여주는 간단..
`substring` 함수는 문자열에서 일부분을 추출하는 메서드입니다. 주어진 문자열에서 특정 범위의 문자들을 선택하여 새로운 문자열을 생성하거나 반환하는 역할을 합니다. 이 함수를 사용하면 문자열을 잘라내거나 원하는 부분만을 가져올 수 있습니다. `substring` 함수는 다양한 형태로 오버로딩되어 있어, 인자로 시작 인덱스와 종료 인덱스를 받을 수 있습니다. 시작 인덱스는 포함되며, 종료 인덱스는 포함되지 않습니다. 따라서 `substring(startIndex, endIndex)`는 문자열에서 `startIndex`부터 `endIndex - 1`까지의 부분 문자열을 추출합니다. 예시로 문자열 "Hello, World!"에서 인덱스 7부터 12까지의 부분 문자열인 "World!"를 추출하려면 다음과..
- `Optional.ofNullable(변수)`: 변수의 값을 Optional로 감싸서 처리합니다. 값이 null이면 Optional.empty()가 생성되고, 값이 존재하면 해당 값을 감싼 Optional이 생성됩니다. - `.orElse(대체값)`: Optional이 비어있을 경우 "대체 값"을 반환합니다. 예를 들어, 사용자 정보를 저장하는 데이터베이스가 있다고 가정해보겠습니다. 이때 사용자의 이름이나 나이 등 중 하나가 null일 수 있습니다. 이런 상황에서 해당 정보를 출력할 때 null인 경우 "정보 없음"이라는 문자열을 출력하고, 값이 있는 경우에는 해당 값을 출력하는 코드를 작성해보겠습니다. String userName = getUserFromDatabase().getName(); // ..
문제 : 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 나의 답 : import java.util.*; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String line= s.nextLine().toUpperCase(); HashMap count= new HashMap(); for(int i=0; imostCount){ mostCommon=entry.getKey(); mostCount=entry.getValue(); } } int check=0; for(Map.En..