Language/Java

Language/Java

[Java] 열거형 클래스, Enum

JDK 1.5 부터 도입된 'Enum'은 클래스의 일종으로, 열거형 클래스라고도 불린다. Enumeration(셈, 계산, 열거)이라는 단어의 앞부분을 따서 만들어졌으며, Enum 클래스에 상수를 선언할 수 있고 선언된 상수는 수정이 불가능하다. Enum 선언 Enum은 클래스 외부에도 선언할 수 있고, 클래스 내부에도 선언할 수 있다. 선언 할 때의 방법은 접근제어자 enum "enum클래스 명" 으로 선언하면 된다. 이후 내부에 상수를 선언하는데 상수명을 대문자로 사용하는 것이 관례이며, 콤마 , 로 연결하여 상수를 선언하면 된다. 클래스 내부 public class Cafe { public enum Coffee { // Enum 클래스 선언 AMERICANO, CAPPUCCINO, CAFELATTE..

Language/Java

[Java] 배열에서 ArrayList로, ArrayList에서 배열로 변환하기

자바에는 Collection 인터페이스를 구현하는 List, Set, Queue 계열의 자료 구조가 있다. 이 객체들을 배열로 만들거나, 배열의 데이터를 Collection 자료구조로 변환해야될 상황이 있다. 그 방법에 대해서 알아보자. 배열 -> ArrayList 먼저 ArrayList의 생성자를 살펴 볼 필요가 있다. 두 번째 생성자를 보면, 매개변수로 받은 컬렉션 데이터 목록으로 ArrayList 객체를 생성한다는 것을 알 수 있다. 그렇다면 배열을 컬렉션 자료구조로 바꾸는 방법은 무엇일까? Arrays 클래스의 정적 메소드인 Arrays.asList() 를 사용하면 된다. Array.asList() 메소드는 배열을 List 형으로 반환한다. (Arrays.asList()로 생성된 객체는 데이터 추..

Language/Java

[Java] 자바 인터페이스(interface), 추상 메소드

자바의 인터페이스는 객체 지향의 핵심 개념인 추상화를 가장 잘 나타내는 개념이다. 설계시 인터페이스를 먼저 작성하면 어떠한 메소드를 구현해야 하는지, 매개 변수의 이름을 어떻게 할지를 일일이 고민하지 않아도 된다. 따라서, 어느정도 정형화된 개발이 가능해진다. 그리고 인터페이스와 같이 구현의 성질을 가지는 추상 메소드도 함께 활용한다면 선언과 구현을 구분하여 개발할 수 있다. 또한, 구체 클래스가 아니라 인터페이스의 개념인 추상화에 의존하게 함으로써 여러가지 이점을 얻을 수 있다. 인터페이스(Interface) 인터페이스 선언 방법 인터페이스의 선언 방법은 다음과 같다. public interface 인터페이스명{ } 다음과 같이 public interface "인터페이스명"으로 선언하면 된다. 인터페이..

Language/Java

[Java] 자바의 객체 비교 메소드 equals 그리고 hashcode (eclipse 메소드 자동 완성)

기본 자료형(byte, int, float, boolean 등)은 "==" 만으로 값이 같은지 확인할 수 있다. 하지만 객체는 == 연산자 만으로 두 객체가 같은지 판단할 수 없다. 객체에 "==" 를 사용할경우, 값이 아닌 주소값을 비교하기 때문이다. equals() - 동등성 비교 후 boolean 값 (true | false)를 반환 (기본 - 주소 비교) hashCode() - 객체의 고유 값(int)을 반환 (기본 - heap에 저장된 객체의 메모리 주소 값) == 연산자 - 기본 자료형의 '값'을 비교하기위해 사용 equals()메소드의 필요성 자바에서 정수 값을 비교하기 위한 연산자는 == 이다. int a = 7; int b = 7; if(a == b) { System.out.println..

Language/Java

[Java] 상속 : 재사용+확장 (생성자,오버로딩, 오버라이딩, IS-A관계 등)

상속이란 친족간의 어떠한 권리나 의무를 계승, 물려주는 것을 말한다. 자바에서도 상속을 통해 상위 클래스의 속성과 기능들을 하위 클래스에게 물려줄 수 있다. 이를 통해 프로그램의 생산성을 크게 증가 시킬 수 있다. 상속 방법 클래스 상속 방법 class 자식클래스 extends 부모클래스 { } //ex class Doctor extends Job { } 자식 클래스를 선언할때 extends 예약어를 이용하여 부모 클래스를 뒤에 붙여주면 부모 클래스에 있는 모든 메소드와 변수를 자식 클래스에 존재하는 것 처럼 사용할 수 있다. 예제 코드를 통해 살펴보자 class Job { public int type; public void setType(int type) { this.type = type; System..

Language/Java

[Java] Static 정리 (static 변수, static 메소드, static 블록, import static)

자바는 객체지향 언어로써 모든 변수와 메소드가 객체 안에 저장된다. 따라서, 다른 클래스의 변수와 메소드를 사용하기 위해서 객체를 생성해야 한다. 하지만, static 예약어를 사용하면 객체 생성 없이 바로 변수와 메소드를 사용할 수 있다. static 변수 static 예약어를 사용하면 객체 생성 없이 클래스에 선언된 변수에 접근할 수 있다. 이와 같이 클래스내부, 메소드 바깥에 static으로 선언된 변수를 "클래스 변수" 또는 정적 변수라고도 한다. (클래스내부, 메소드 바깥에 static으로 선언되지 않은 변수를 "인스턴스 변수"라고 한다.) static 변수 선언방법은 다음과 같다. static 변수 선언 방법 접근 제어자 static 자료형 "변수명" //ex public static int ..

KAispread
'Language/Java' 카테고리의 글 목록 (2 Page)