JAVA
-
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 메소드명([인자]); 이 추상메소드를 하나라도 포함하면 추상클래스가 되는데, 구현되지 않은 미완성 상태의 추상적인 클래스를 의미한다. 이 추상클래스를 구체적으로 구현할 책임..
-
JAVA 자바 오버라이딩, 다형성JAVA 2020. 8. 6. 23:29
🎯 자바 상속의 오버라이딩과 다형성을 알아본다. 오버라이딩 상속관계에서 부모클래스의 메소드를 자식클래스가 재정의해서 사용하는 방법이다. 부모의 메소드 형식을 똑같이 써야한다. 접근지정자는 부모와 같게 하거나 확대 지정만 할 수 있다. static, final, private은 오버라이딩이 불가능하다. class Employee{ String name; int salary; public String getEmployee() { return name +" "+ salary; } public Employee() {} public Employee(String name, int salary) { this.name = name; this.salary = salary; } } class Manager extends ..