반응형

2024/12/30 5

[Java] 자바 Generics

개요다양한 타입의 객체를 다루는 메서드로, 컬렉션 클래스에서 컴파일 시에 타입을 체크한다.미리 사용할 타입을 명시해서 형 변환을 하지 않아도 되게 한다.이로 인해 객체의 타입에 대한 안전성 향상 및 형 변환의 번거로움을 감소할 수 있다. ✅ Generics의 주요 특징컴파일 시 타입 체크 : 잘못된 타입 사용 시 컴파일 단계에서 오류를 잡을 수 있다.형 변환 불필요 : 제네릭을 사용하면 객체를 꺼낼 때 명시적 형 변환(casting)이 필요 없다.유지보수 용이 : 타입 안정성이 보장되어 코드 가독성 및 유지보수가 쉽다. 제네릭 클래스 정의클래스 또는 인터페이스 선언 시 에 타입 파라미터를 표시한다.public class Box { private T value; public void set(T ..

[P5] 백준 27989번 가장 큰 증가하는 부분 수열 2 C++ 세그먼트 트리

리뷰https://www.acmicpc.net/problem/27989처음엔 Lis로 접근하였다가 엣지케이스가 존재하여 Fail을 받았다.그 후로 세그먼트 트리를 통해 접근하였는데 분명 로직은 맞는데 계속 틀렸다.알고보니 정수범위 초과로 인한 오버플로우로 매우 큰값을 넣었을 때의 엣지케이스를 발견했다.그 뒤로 vector을 set으로 변환하는 과정에서 뭘 잘못건드렸는지 계속 또 틀림이 반복되었다.결국 존재하는 int를 모두 long long타입으로 변환하여 set을 사용한 풀이도 AC를 받았다.  전역 변수M : 주어지는 수열의 크기의 최대값을 저장하기 위한 상수타입 변수n : 주어지는 수열의 크기를 저장할 변수lst : 수열의 정보를 입력 받아 저장하기 위한 정수형 배열tree : 최대값 세그먼트 트리..

[Java] 자바 인터페이스

개요자바에서 인터페이스 (Interface)는 추상적인 행동을 정의하는 데 사용되는 타입이다.인터페이스는 메서드의 시그니처만을 정의하고, 그 메서드들이 실제로 어떻게 동작하는지는 구현 클래스에서 정의한다.인터페이스는 다형성, 코드의 재사용성, 유연성을 제공하는 중요한 자바의 특징 중 하나이다. 인터페이스는 주로 클래스들 간에 공통된 행동을 강제하기 위해 사용된다.클래스는 인터페이스를 구현 (implement)함으로써 그 인터페이스에 정의된 메서드를 반드시 구현해야한다. 인터페이스의 주요 특징추상 메서드만 포함: 인터페이스는 추상 메서드만 포함할 수 있다. (단, Java 8부터는 default 메서드와 static 메서드도 추가 가능)다중 상속: 자바에서 클래스는 다중 상속을 지원하지 않지만, 인터페이스..

[Java] 자바 Object 클래스

개요모든 클래스의 최상위 부모 클래스이다.자바에서 모든 클래스는 암묵적으로 Object 클래스를 상속 받는다.즉, 자바에서 직접 상속을 명시하지 않더라도 모든 클래스는 Object를 상속 받는다.이를 통해 모든 객체는 Object 클래스에서 정의된 기본적인 메서드를 사용할 수 있다. 자바에서 Object 클래스는 여러 중요한 메서드를 제공하며, 이를 통해 모든 객체가 공통으로 사용할 수 있는 동작을 정의할 수 있다.Object 클래스에서 제공하는 주요 메서드는 다음과 같다.메서드설명equals(Object obj)객체 비교. 기본적으로 참조 비교를 하지만 오버라이드 가능hashCode()객체의 해시 코드 반환. equals()와 함께 오버라이드 필요toString()객체를 문자열로 반환. 오버라이드하여 ..

[Java] 자바 제한자

개요제한자(Access Modifiers)는 클래스, 메서드, 변수 등의 접근 범위를 제한하는 키워드이다.이를 통해 캡슐화(Encapsulation)를 구현하고, 안전한 코드를 작성할 수 있다. 자바에는 4가지 주요 접근 제한자가 있다.접근 제어자동일 클래스동일 패키지다른 패키지 (상속)다른 패키지 (비상속)public✅✅✅✅private✅❌❌❌protected✅✅✅❌default✅✅❌❌ 그 외 제한자로는 abstract, final, static이 존재한다.키워드사용 목적abstract- 추상 클래스와 추상 메서드를 정의할 때 사용- 자식 클래스에서 구현하도록 강제final- 변수: 값 변경을 방지- 메서드: 오버라이드 방지- 클래스: 상속 방지static- 클래스 변수/메서드: 인스턴스화 없이 클래스..

728x90
반응형