자바
-
JAVA 자바 Map 맵 HashMapJAVA 2020. 8. 15. 00:21
🎯 자바 Map 계열의 HashMap을 연습해본다. 맵 Map Map 계열은 데이터를 key-value pair로 순서 없이 저장한다. key를 통해서 데이터값 value에 접근해 데이터를 사용할 수 있는 자료구조 형태이다. key는 중복되지 않는 유일한 값이어야 하며 value값은 중복이 가능하다. key값을 사용하면 빠르게 자료를 검색할 수 있다. Map도 인터페이스이기 때문에 Map을 사용하려면 실제구현된 HashMap, Hashtable 클래스를 사용해야 한다. HashMap은 null값을 허용하며, Hashtable은 null값을 허용하지 않는다. put(키,밸류)메소드는 두개의 인자를 받아서 새로운 데이터를 저장한다. 저장한 데이터는 get(key) 메소드를 사용해서 키에 해당하는 객체를 불러..
-
JAVA 자바 List계열 ArrayListJAVA 2020. 8. 13. 22:19
🎯 자바 List 컬렉션의 ArrayList를 연습해본다. ArrayList 컬렉션의 또 다른 하위 인터페이스인 List는 데이터를 저장할 때 순서가 있어서 중복 저장이 가능하다. 저장된 위치값을 사용할 수 있기 때문에 컬렉션 중간에 값을 삽입하거나 수정하는 작업 등 Set보다 훨씬 다양한 기능을 처리하는 메소드를 제공한다. List는 인터페이스이기 때문에 ArrayList 클래스를 통해 구현해서 사용할 수 있다. ArrayList 클래스 사용하기 import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class Ex10_7 { public static void m..
-
JAVA 자바 컬렉션 Set계열 HashSetJAVA 2020. 8. 12. 23:43
🎯 자바 컬렉션의 종류를 알아보고 HashSet을 연습해본다. 컬렉션 (Collection) 데이터를 저장하는 방법에는 변수, 배열 그리고 컬렉션이 있다. 컬렉션은 큰 데이터를 관리할 때 배열보다 효율적이다. 하나의 컬렉션에 서로 다른 데이터를 저장할 수 있으며, 객체를 저장할 때마다 자동으로 크기를 변경할 수 있다. 배열처럼 방 크기와 데이터타입을 지정할 필요 없이 100개건 200개건 그냥 다 넣을 수 있다. 컬렉션의 최상위 클래스는 Collection 인터페이스다. 컬렉션은 Set과 List 계열로 나뉘며 함수 정의만 되어있는 인터페이스이기 때문에 실제 구현은 상속받는 아래 클래스들이 한다. Set계열은 데이터를 저장할 때 순서가 없기 때문에 중복 저장이 불가능하다. List 계열은 데이터 저장순서..
-
JAVA 자바 제네릭 (Generic)JAVA 2020. 8. 11. 22:25
🎯 자바 제네릭을 알아본다 제네릭 (Generic) public class Ex10_1 { public static void main(String[] args) { Object [] arr = {"홍길동", "이순신", "유관순"}; for(Object obj : arr) { String name = (String)obj; System.out.println("이름: "+name); } } } 최상위클래스 object로 다양한 하위타입을 담을 수 있지만 상위클래스 오브젝트로는 자식이 가진 메소드에 접근할 수 없다. 그래서 알맞은 타입을 받으려면 매번 형변환이 필요하다. 이러한 불편한 점을 개선한 방법이 제네릭이다. public class 클래스명{} 클래스명 참조변수 = new 클래스명(); 제네릭은 객체..
-
JAVA 자바 예외처리, throws, 사용자정의 예외클래스JAVA 2020. 8. 10. 23:55
🎯 자바 예외처리와 throws키워드, 사용자정의 예외클래스를 알아본다. 예외처리 (Exception Handling) 예외란 프로그램 실행 중에 발생되는 의도치않은 문제를 뜻한다. 예외가 발생되면 프로그램은 중간에 비정상적으로 종료된다. 예외가 발생했을 때 프로그램이 끝까지 정상종료 되도록 처리하는 것을 예외처리라고 한다. 이 방법을 통해 예외가 발생된 이유와 예외메시지를 보여주고 나머지 작업을 계속 실행하게 할 수 있다. 예외처리 방법은 함수 안에서 직접 에러코드를 잡느냐, 함수를 호출한 곳에서 에러를 잡느냐 두 종류로 나뉜다. 예외처리는 오류가 있는 코드를 수정하는 방법이 아니다. 우리가 실행하는 코드는 순차문이며, 한 번 실행된 문장은 다시 실행시킬 수 없기 때문에 예외 발생을 수정하는 것은 불가..
-
JAVA 자바 중첩클래스, comparator 인터페이스JAVA 2020. 8. 9. 12:54
🎯 자바 중첩클래스와 comparator 인터페이스를 활용한 배열정렬을 알아본다. 🔖 목차 중첩클래스 익명클래스 comparator 정렬 인터페이스 중첩클래스 public class Outer{ class Inner{ }//end Inner }//end Outer 클래스 안에 또 다른 클래스를 가진 형태다. A라는 클래스가 B 클래스에서만 사용된다면, 독립적인 클래스로 작성하기보다 B클래스의 중첩형태로 작성하는 게 관리하기 쉬워진다. 중첩된 이너클래스는 아우터 클래스의 멤버(변수, 메소드)를 자신의 것처럼 사용할 수 있다. Outer 멤버의 접근지정자가 private이라도 접근할 수 있다. 이너클래스 안에선 static 변수를 사용할 수 없다. static 선언은 변수가 아닌 이너 클래스에만 지정할 수 ..
-
JAVA 자바 인터페이스, 디커플링JAVA 2020. 8. 8. 17:50
🎯 자바 인터페이스, 디커플링 설계를 알아본다. 인터페이스 public interface 인터페이스명 { // public static final로 지정한 상수 // public abstract 지정자를 이용한 추상메소드 // public default 지정자를 이용한 일반메소드 // public static 지정자를 이용한 일반메소드 } 인터페이스는 추상클래스와 비슷한 용도로 메소드 사용을 강제할 수 있는 특징을 가졌다. 상수, 추상메소드, defualt 메소드, static메소드만 가질 수 있다. 불완전한 추상메소드를 갖고 있기 때문에 객체생성이 불가능하며 구현을 할 때는 일반클래스에 extends가 아닌 구현한다는 뜻의 implements키워드를 사용한다. 인터페이스와 구현관계를 가진 클래스는 준상..
-
JAVA 자바 추상클래스 abstractJAVA 2020. 8. 7. 23:58
🎯 자바의 추상클래스를 알아본다. 추상클래스 "이 함수만은 반드시 자식에게 주겠다!" public abstract class 클래스명{ :인스턴스 변수 :일반 메소드 (concrete method) :생성자 :추상 메소드 (abstract method)} abstract 키워드를 사용해 추상클래스를 선언한다. 하위클래스에서 반드시 부모클래스의 메소드를 사용하도록 강제할 수 있는 클래스다. `{블록}`이 없는 메소드를 추상메소드라고 하며, 블록이 없기 때문에 아무런 수행방법도 제시되지 않은 상태다. public abstract void 메소드명([인자]); 이 추상메소드를 하나라도 포함하면 추상클래스가 되는데, 구현되지 않은 미완성 상태의 추상적인 클래스를 의미한다. 이 추상클래스를 구체적으로 구현할 책임..