Java 17

익명 객체(Anonymous Object)

익명 객체 (Anonymous Object, 익명 클래스) 익명 객체란 이름이 없는 객체를 말한다. 익명 객체는 명시적으로 클래스를 선언하지 않기 때문에 쉽게 생성할 수 있으며, 주로 1회성으로 사용되거나 간단한 작업을 수행할 때 생성된다. 익명 객체는 일반적으로 두 가지로 분류할 수 있으며, 클래스를 상속해서 만드는 경우를 '익명 자식 객체'라 말하고, 인터페이스를 구현해서 인스턴스를 생성하는 것을 '익명 구현 객체'라고 한다. *참고* 익명 객체는 '익명 자식 객체'와 '익명 구현 객체', 두 가지 개념으로 분류되는 것이 아니다. 단지 익명 객체의 구현 방식에 차이가 있다는 것을 설명하기 위함이다. 익명 자식 객체 (익명 자식 클래스) 익명 자식 객체란, 기존 클래스의 하위 클래스를 익명으로 정의하고..

Java 2023.09.04

List 컬렉션, LinkedList

LinkedList에 대한 이해 배열은 가장 기본적인 형태의 자료구조로, 사용법이 쉽고 데이터의 접근 속도가 빠르다는 장점이 있지만 다음과 같은 단점이 있다.고정적 크기한번 크기를 지정하면 변경할 수가 없어, 새로운 배열을 생성해서 데이터를 복사해야 하는 번거로움이 있다. 빠른 접근속도를 위해서 충분한 크기의 배열을 만들어야 하므로 메모리가 낭비 될 수 있다.데이터 추가 및 삭제순차적으로 데이터를 추가하고 끝에서부터 데이터를 삭제하는 것은 빠르지만, 중간에 데이터를 추가하거나 삭제를 하는 경우, 이를 위해 요소 간 이동을 하는 시간 비용이 크다. 이러한 배열의 단점을 보완하기 위해서 연결 리스트가 고안되었다. 이 자료구조의 특징은 불연속적으로 존재하는 데이터를 서로 연결한 형태로 설계한 것이다.  연결 ..

List 컬렉션, ArrayList

ArrayListArrayList는 컬렉션 클래스 중 가장 널리 사용되는 자료 구조 중 하나이다.ArrayList는 Collection 인터페이스의 하위 클래스인 List 인터페이스를 구현한 클래스로, 데이터의 저장 순서를 유지하고 중복을 허용하는 특징을 가지며, 이는 List 인터페이스의 설계 원칙을 따른 것이다.ArrayList는 내부적으로 데이터를 순차적으로 저장하기 위해서 Object 배열을 사용하며, 동적 크기 배열을 구현한 클래스이다. 이 동적 크기 조절 기능은 데이터 추가 및 제거를 훨씬 간단하게 만들어준다.ArrayList의 활용과 제공 메서드ArrayList list = new ArrayList(); // ArrayList 선언list.add("첫 번째 요소"); // Array..

추상 클래스(abstract class)

추상 클래스란?(abstract class) 추상 클래스란? 미완성 설계도 또는 미완성 메서드를 갖고 있는 클래스라고 표현할 수 있다. 추상 클래스는 클래스 선언부에 abstract 키워드를 선언하며, 추상 메서드를 하나라도 포함하고 있으면 추상 클래스이다. (단, 추상 메서드를 포함하지 않아도 abstract 키워드가 선언되어 있으면 추상 클래스가 될 수 있다.) 추상 클래스는 인스턴스 생성이 불가하며, 상속을 통해 하위 클래스에서 상위 클래스의 "모든 추상 메서드"를 완성해야만 인스턴스를 생성할 수 있다. 즉 인스턴스는 클래스라는 설계도 기반으로 '실체화된 존재'와 같은 개념이므로, 미완성 설계도인 추상 클래스로는 어떠한 존재를 실체화 할 수 없는 것이라고 생각하면 이해가 쉬울 것이다. 정리하자면, ..

Java 2023.08.30

클래스와 객체, 변수

Java 기초 개념에 대한 이해 객체지향 프로그래밍(Object-Oriented Programmin, OOP) - 현실 세계를 모델링하는 듯한 방식으로 소프트웨어를 설계 하는 개발 패러다임 - 객체지향 프로그래밍은 코드의 재사용성, 유지보수성, 모듈화 등의 장점으로 개발을 보다 효율적으로 도움. 자바 프로그래밍의 기초 용어 1. 클래스(Class) -클래스는 객체를 생성하기 위한 설계도라고 표현할 수 있음 -클래스는 데이터(속성, 필드(즉, 클래스 안에 있는 변수)와 메서드를 정의하는 구조체 -클래스는 주로 객체를 생성하는데 사용되며, 객체들 간에 '공통된 특징'을 나타나는데 활용됨. (객체 지향 프로그래밍의 목적) 2. 객체(Object) - 클래스가 설계도라면 객체는 클래스라는 설계도 기반으로 실제로..

Java 2023.08.28

List, Set, Map 인터페이스

Collection 인터페이스 (List, Set의 조상)  Collection 인터페이스의 메서드메서드설명boolean add(E e)지정된 요소 e를 컬렉션에 추가.boolean addAll(Collection c)주어진 컬렉션 c의 모든 요소를 현재 컬렉션에 추가.void clear()컬렉션의 모든 요소를 제거.boolean contains(Object o)컬렉션이 특정 객체 o를 포함하고 있는지 여부를 반환.boolean containsAll(Collection c)컬렉션이 주어진 컬렉션 c의 모든 요소를 포함하고 있는지 여부를 반환.boolean isEmpty()컬렉션이 비어 있는지 확인.Iterator iterator()컬렉션을 순회할 수 있는 Iterator를 반환.boolean remove..

컬렉션 프레임워크

컬렉션 프레임워크에 대한 이해 프레임워크란? 프로그램 설계 구조와 규칙을 제공하는 일종의 체계를 의미 즉, 개발자들에게 어떻게 코드를 구조화하고, 어떤 규칙을 따라야 하는지에 대한 지침을 제공하는 것. 프레임워크는 일반적인 문제를 해결하기 위한 코드나 구조를 제공하여, 개발자는 이미 만들어진 기능을 재사용 할 수 있다. 일반적으로 프레임워크는 확장 가능한 구조로 설계되어 있어, 필요에 따라 기능을 추가하거나 변경이 가능함. 컬렉션 프레임워크란? 데이터를 저장, 관리 및 처리하기 위한 다양한 "자료 구조"와 "메서드"를 제공하는 라이브러리의 집합. 즉, 자료 구조와 메서드를 제공함으로써 데이터를 보다 효율적으로 다루고 처리하는 데 도움을 주는 도구. 데이터를 다루는 데 필요한 여러 인터페이스와 그 인터페이..