반응형

Programming language/Java 12

Collection

제네릭 자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미합니다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다. 제네릭 클래스 class AnimalList { private ArrayList animalList = new ArrayList(); void add(T animal) { animalList.add(animal); } void remove (T animal) { animalList.remove(animal); } T get(int index) { return animalList.get(index); } void print() { for (T animal : animalList) { ..

[JAVA] 어노테이션(Annotation)

어노테이션 어노테이션은 Java5에 추가된 기능 어노테이션은 클래스나 메소드위에 붙는다. @(at)기호로 이름이 시작한다. 어노테이션을 클래스나 메타코드에 붙인 후, 클래스가 컴파일되거나 실행될 때 어노테이션의 유무나 어노테이션에 설정된 값을 통하여 클래스가 좀 더 다르게 실행되게 할 수 있다. 이런 이유로 어노테이션을 일정의 설정파일처럼 설명하는 경우도 있다. 어노테이션은 자바가 기본으로 제공해주는 것도 있고, 사용자가 직접 만들 수도 있다. 사용자가 직접 작성하는 어노테이션을 Custom 어노테이션이라고 말한다. 커스텀 어노테이션을 이용하는 방법 어노테이션을 정의한다. 어노테이션을 클래스에서 사용한다. (타겟에 적용) 어노테이션을 이용하여 실행. 패키지 익스플로러에서 [new - Annotation]..

[JAVA] Set, List, Map

Set set은 중복이 없고, 순서도 없는 자료구조. Hashset과 TreeSet이 있다. import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetExam { public static void main(String[] args) { Set set1 = new HashSet(); boolean flag1 = set1.add("kim"); boolean flag2 = set1.add("lee"); boolean flag3 = set1.add("kim"); System.out.println(set1.size()); //저장된 크기를 출력합니다. 3개를 저장하였지만, 이미 같은 값이 있었기 때문에 2개가..

[JAVA] Collection Framework

java.util 패키지 java.util 패키지는 유용한 클래스들을 많이 가지고 있는 패키지 날짜와 관련된 클래스인 Date, Calendar 클래스 자료구조와 관련된 컬렉션 프레임워크와 관련된 인터페이스와 클래스 deprecated란 더이상 지원하지 않으니 사용하지 않는 것이 좋다란 의미다. List, Set, Collection, Map은 자료구조 즉 컬렉션 프레임워크와 관련된 인터페이스 컬렉션 프레임워크 java.util패키지에는 자료를 다룰 수 있는 자료구조 클래스가 다수 존재한다. 자료구조 클래스들을 컬렉션 프레임워크라고 한다. Collection 인터페이스 컬렉션 프레임워크에서 가장 기본이 되는 interface 중복도 허용하고, 자료가 저장된 순서도 기억하지 못한다. Collection이 ..

[JAVA] Object와 오버라이딩

Object 클래스 모든 클래스의 최상위 클래스 아무것도 상속받지 않으면 자동으로 Object를 상속 Object가 가지고 있는 메소드는 모든 클래스에서 다 사용할 수 있다는 것을 의미 Object 메소드 사용할 때 반드시 오버라이딩해서 사용해야 한다. equals : 객체가 가진 값을 비교할 때 사용 String 클래스의 equals 함수도 equals 메소드를 오버라이딩한 것이다. toString : 객체가 가진 값을 문자열로 반환 hashCode : 객체의 해시코드 값 반환 아래의 코드를 실행하면, s1 != s2가 출력되고, 서로 다른 hashCode 값이 출력된다. 아직 Object 메소드를 따로 정의하지 않았기 때문에 나오는 결과이다. Object 메소드는 사용자가 알맞게 오버라이딩해서 사용해..

[JAVA] 인터페이스와 다른 형식의 클래스

인터페이스 만들기 인터페이스: 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템 인터페이스 정의하는 방법 추상 메소드와 상수를 정의 할 수 있다. public interface TV{ public int MAX_VOLUME = 100; public int MIN_VOLUME = 0; public void turnOn(); public void turnOff(); public void changeVolume(int volume); public void changeChannel(int channel); } 인터페이스에서 변수를 선언하면 컴파일시 자동으로 아래와 같이 바뀐다. public static final int MAX_VOLUME = 100; public static final..

[JAVA] 상속

상속 상속이란? 부모가 가진 것을 자식에게 물려주는 것을 의미한다. 노트북은 컴퓨터의 한 종류다. 침대는 가구의 한 종류다. 소방차는 자동차다. 이렇게 말할 수 있는 관계를 is a 관계 혹은 kind of 관계라고 한다. Car를 상속받은 Bus를 class로 표현하는 방법 public class Car{ } public class Bus extends Car{ } 자바는 클래스 이름 뒤에 extends 키워드를 적고 부모클래스 이름을 적게 되면 부모 클래스가 가지고 있는 것을 상속받을 수 있게 된다. 상속이란 부모가 가지고 있는 것을 자식이 물려받는 것을 말한다. 즉, 부모가 가지고 있는 것을 자식이 사용할 수 있게 된다. 부모클래스에 메소드 추가하기 Car에 run()메소드를 추가 public cl..

[JAVA] 클래스 다듬기

생성자 모든 클래스는 인스턴스화 될때 생성자를 사용한다. 생성자의 특징 생성자는 리턴타입이 없다. 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다. 매개변수가 없는 생성자를 기본생성자라고 한다. 생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어지지 않는다. Public class 클래스명 { 타입 필드명; public 클래스 명(매개변수 목록){ // 생성자 블록 ... } public 리턴타입 메소드명 (매개변수 목록){ ... } } 생성자의 역할 생성자가 하는 일은 객체가 될 때 필드를 초기화 하는 역할을 수행한다. 자동차가 객체가 될때 반드시 이름을 가지도록 하려면, Car클래스를 다음과 같이 만들어야 한다. public class ..

[JAVA] 클래스와 객체

자바는 객체지향 언어이다. 프로그램을 구성하는 요소는 객체이며, 이것이 상호작용 하도록 프로그래밍 한다. 클래스 객체를 만들기 위한 틀 예를 들어 붕어빵이 객체라고 하면, 붕어빵을 만드는 틀을 클래스라고 할 수 있다. 클래스 선언 자동차 클래스 생성 자동차 클래스가 생성되었다고 자동차가 만들어진 것은 아니다. // car.java public class 클래스명 { ... } Car 객체 생성하기 (자동차 만들기) public class CarExam{ public static void main(String args[]){ Car c1 = new Car(); Car c2 = new Car(); } } new 연산자는 new 연산자 뒤에 나오는 생성자를 이용해 메모리에 객체를 만들라는 명령 메모리에 만들어..

반응형