Language/Java

    [Java] 메소드 오버로딩 (Method Overloading)

    오버로딩(Overloading) 자바에서 한 클래스 내에서 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것을 "메소드 오버로딩(Method Overloading)" 또는 간단히 "오버로딩(Overloading)"이라 한다. 메소드 오버로딩 구분 요건은 아래와 같다. 메소드 이름이 같아야 한다. 매개변수의 개수, 타입 또는 순서가 달라야 한다. 반환 타입은 관계 없다. 위의 조건을 만족시키지 못하는 메소드는 중복 정의로 간주되어 컴파일시에 에러가 발생한다. 그리고 오버로딩된 메소드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩을 구현하..

    [Java] extends, implements의 차이

    상속(Inheritance)이란? 상속에 대해서 다루기 전에 우선, OOP(Object-Oriented Programming, 객체지향프로그래밍)가 무엇인지에 대해 알고 있어야한다. OOP는 다음과 같은 특징을 가지고 있다. 상속과 인터페이스(계층성) 다형성, 사용편의성(모듈화) 캡슐화, 정보은닉 자료 추상화(모델링) 동적 바인딩 아래 그림은 상속에 대한 이해를 돕기 위한 그림이다. 상자 하나하나는 모두 객체(Object)이고, 자바 용어로는 Class이다. 이러한 계층을 표현하기 위해 만들어진 것이 바로 상속이다. 상속 시, 하위 객체(자식)는 상위 객체(부모)의 특징(메소드, 변수 등)을 물려받게 된다. 이 때, 상위 객체(부모)의 특징(메소드, 변수 등)을 '새롭게 구현'하는가, '그대로 사용'하는..

    [Java] 다차원 배열 (multi-dimensional array)

    다차원 배열 (multi-dimensional array) 다차원 배열이란 2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열을 의미한다. 즉, 2차원 배열은 배열 요소로 1차원 배열을 가지는 배열이며, 3차원 배열은 배열 요소로 2차원 배열을 가지는 배열이고, 4차원 배열은 배열 요소로 3차원 배열을 가지는 배열인 것이다. 2차원 배열(two dimensional array) 2차원 배열이란 배열의 요소로 1차원 배열을 가지는 배열이다. 자바에서는 2차원 배열을 나타내는 타입을 따로 제공하지 않는다. 대신에 1차원 배열의 배열 요소로 또 다른 1차원 배열을 사용하여 2차원 배열을 나타낼 수 있다. 따라서 자바에서 2차원 배열은 다음과 같은 문법으로 선언할 수 있다. 1. 타입[][..

    [Java] 해시테이블 (Hashtable)

    해시테이블 (Hashtable) 해시테이블은 해시맵(HashMap)과 함께 Map을 구현한 키와 값 쌍을 데이터로 저장한 컬렉션(Collection)이다. 여기서 키는 유일해야만 한다. 해시테이블은 이 키를 가지고 키에 해당하는 값은 찾는다. Hashtable과 HashMap의 차이 Hashtable과 HashMap의 차이점은 Thread-Safe인지 아닌지가 그 차이점인데 Hashtable은 동기화가 걸려있어서 Thread-Safe하다고 할 수 있으며, HashMap은 동기화가 없어 unsafe하다고 할 수 있다. 그래서 안전성을 추구한다면 Hashtable을 쓰면 되고, 데이터의 빠른 처리를 위해서라면 HashMap을 사용하면 된다. 인터페이스인 Map을 구현한 만큼 HashMap과 사용법이 거의 비..

    [Java] 해시맵 (HashMap)

    해시맵 (HashMap) 해시맵은 이름 그대로 해싱(Hashing)된 맵(Map)이다. 맵이라는 것은 키(Key)와 값(Value) 두 쌍으로 데이터를 보관하는 자료구조이다. 여기서 키는 맵에 오직 유일하게 있어야 한다. 즉, 같은 맵에 두 개 이상의 키가 존재하면 안된다는 것이다. 이름 그대로 열쇠이기 때문에 그 열쇠로 짝인 값(Value)을 찾아야하기 때문이다. 값은 중복되어도 상관이 없다. HashMap과 사용법이 거의 동일한 컬렉션(Collection)에는 Hashtable이 있다. 두 클래스의 차이점은 Thread 관점에서 안전하냐(Hashtable), 안전 하지 않은 대신 속도가 빠르냐(HashMap)이다. Map 인터페이스를 구현한 HashMap은 키를 해싱하여 자료를 저장하고 꺼내오기 때문..

    [Java] 실습 class AppleOrange

    package fruitSales.ver04; import java.util.HashMap; import java.util.Map; import java.util.Scanner; //-------------------------------------------------------------------------- // 사과 장수 //-------------------------------------------------------------------------- class AppleSeller { int myMoney; int numOfApple; int APPLE_PRICE; public AppleSeller() { this(0, 100, 1500); } public AppleSeller(int m..