JAVA (14) - equals() 와 hashCode()
1. 개요 자바의 최상위 클래스인 Object 는 모든 클래스가 기본적으로 상속받는 메서드들을 제공한다. 그중 equals() 와 hashCode() 는 객체의 동일성(Identity)과 동등성(Equality)을 비교할 때 핵심적인 역할을 담당한다. 두 메서드는 올바…
1. 개요 자바의 최상위 클래스인 Object 는 모든 클래스가 기본적으로 상속받는 메서드들을 제공한다. 그중 equals() 와 hashCode() 는 객체의 동일성(Identity)과 동등성(Equality)을 비교할 때 핵심적인 역할을 담당한다. 두 메서드는 올바…
1. 개요 자바에서 String 은 가장 자주 사용되는 클래스 중 하나다. 다른 객체와 달리 String 은 한번 생성되면 내부의 값을 변경할 수 없는 불변(Immutable) 객체 로 설계되었다. 이러한 불변 특성은 자바의 메모리 관리 및 안정성 측면에서 매우 중요한…
1. 개요 내부 클래스(Inner Class)는 클래스 내부에 선언된 또 다른 클래스를 의미한다. 두 클래스가 서로 긴밀한 관계에 있을 때 내부 클래스로 선언하면, 외부 클래스의 멤버들에 쉽게 접근할 수 있고 코드의 캡슐화를 높일 수 있다. 내부 클래스는 선언되는 위치…
1. 개요 자바(Java)에서 static 키워드는 클래스 수준의 멤버(변수, 메서드)를 정의할 때 사용한다. 일반적으로 객체 지향 프로그래밍에서는 클래스를 바탕으로 new 연산자를 통해 인스턴스를 생성해야 멤버에 접근할 수 있다. 하지만 static 키워드가 붙은 멤…
1. 개요 객체지향 프로그래밍(OOP)의 핵심 특징 중 하나는 캡슐화(Encapsulation) 다. 캡슐화는 연관된 데이터와 메서드를 하나의 단위로 묶고, 외부로부터 데이터를 보호하는 기법을 의미한다. Java에서는 이러한 캡슐화를 구현하고 객체의 내부 데이터에 대한…
1. 개요 자바에서 추상 클래스(Abstract Class) 와 인터페이스(Interface) 는 모두 객체 지향 프로그래밍의 핵심 개념인 추상화(Abstraction)를 구현하기 위한 장치이다. 두 개념 모두 하위 클래스에서 반드시 구현해야 하는 메서드를 정의하여 코…
1. 개요 상속(Inheritance)과 다형성(Polymorphism)은 객체 지향의 핵심이라 불리는 대표적인 특성이다. 상속을 통해 기존 클래스의 자원을 재사용하고, 다형성을 통해 하나의 타입으로 여러 형태의 객체를 다룸으로써 유연하고 유지보수가 쉬운 프로그램을 작…
1. 개요 자바(Java)는 대표적인 객체 지향 프로그래밍(Object Oriented Programming, OOP) 언어 이다. 객체 지향 프로그래밍의 핵심은 현실 세계의 사물이나 개념을 프로그램 내의 '객체'로 모델링하여 코드를 작성하는 데 있다. 이러한 객체를…
1. 개요 Java에는 int , double , boolean 과 같은 기본 타입(Primitive Type)이 존재한다. 기본 타입은 성능상 이점이 있지만, 객체가 아니기 때문에 컬렉션 프레임워크( ArrayList 등)에 저장할 수 없고 null 을 다룰 수도 없…
1. 개요 열거형(Enum, Enumeration)은 서로 관련이 있는 연관된 상수들의 집합을 정의하는 특수한 데이터 타입 이다. Java 5 이전에는 상수를 정의할 때 final static int 방식을 사용했지만, 이는 타입 안정성 문제나 가독성 저하를 유발했다.…