Collections Framework ArrayList 크기를 선언하지 않아도 됨 java.util.ArrayList를 import 해야 함 add( )로 데이터를 추가함 size( )로 크기를 알 수 있음 get( )으로 데이터에 접근할 수 있음 ArrayList al = new ArrayList(); al.add("one"); al.add("two"); al.add("three"); for (int i = 0; i < al.size(); i++) { String value = al.get(i); System.out.println(value); // 에러 // add()는 어떠한 타입도 수용해야 하기 때문에 매개변수의 데이터 타입은 Object임 // 따라서, 추가된 데이터는 Object 타입인데, value는 String 타입이므로 에러.. onYouTube/Java 4년 전
제네릭 "제네릭 (Generic)" : 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 인스턴스를 사용할 때 데이터 타입을 확정함 매개변수와 비슷하게 동작함 변수의 데이터 타입과 관련이 있음 class Person { public T info; Person(T info) { this.info = info; } } // 제네릭화 하지 않고 info의 데이터 타입을 Object로 지정하면, info에 어떠한 타입이 들어가도 컴파일 오류가 나지 않음 (타입이 안전하지 않음) public class GenericDemo { public static void main(String[] args) { Person p1 = new person(); Person p2 = new person(); // p1, p2의.. onYouTube/Java 4년 전
참조 new( )를 통해서 생성하는 것은 기본 데이터 타입이 아닌, 참조형 데이터 타입임 복제 : 참조 = 복사본 : 바로가기 // 복제 int a = 1; int b = a; // a에 있는 1을 복제해서 b에 대입한 것임 b = 2; System.out.println(a); // 1 // b값을 변경해도 a는 그대로임 // 참조 A a = new A(1); A b = a; // a와 b는 인스턴스의 주소값을 가짐 b.id = 2; System.out.println(a.id); // 2 static void _reference1(A b) { b = new A(2); // 매개변수 b를 다른 객체로 변경함 } public static void runReference1() { A a = new A(1); _re.. onYouTube/Java 4년 전
상수와 enum final : 변수의 값을 변경할 수 없도록 고정 바뀌지 않는 값이라면 인스턴스 변수가 아니라 static을 사용해 클래스 변수로 지정하는 것이 더 좋음 public class ConstantDemo { private final static int APPLE = 1; private final static int PEACH = 2; private final static int BANANA = 3; private final static int APPLE = 4; // 에러 // final은 값을 변경할 수 없도록 하기 때문에 중복 선언을 할 수 없음 public static void main(String[] args) { int type = APPLE; switch(type){ case APPLE: Syst.. onYouTube/Java 4년 전
Object 클래스 Object 클래스는 모든 클래스들의 조상임 상속받지 않는 모든 클래스는 자동으로 Object 클래스를 상속받음 ( extends Object { } ) Object 클래스에 다양한 메소드가 정의되어 있기 때문에, 어떤 클래스에서든지 다양한 메소드를 상속받아 사용할 수 있음 Calculator c1 = new Calculator(); System.out.println(c1); // Calculator@1dbd16a6 // Calculator 클래스가 toString이 정의되어 있는 Object 클래스를 상속받아서 자동으로, 암시적으로 toString()을 호출하기 때문에 System.out.println(c1.toString)과 같음 // "@" : 구분자 역할 // 1dbd16a6 : 인스턴스를 식별해.. onYouTube/Java 4년 전
예외 try { 예외의 발생이 예상되는 로직 } catch (예외클래스 인스턴스) { 예외가 발생했을 때 실행되는 로직 } public void divide() { try { System.out.print("계산결과는 "); System.out.print(this.left/this.right); System.out.print(" 입니다."); } catch(Exception e) { System.out.println("오류가 발생했습니다 : " + e.getMessage()); } } getMessage( ) : 에러의 원인을 간단하게 출력 toString( ) : 에러의 예외에 대한 내용과 원인을 출력 printStackTrace( ) : 에러의 발생지를 찾아서 단계별로 에러를 출력 System.out.pr.. onYouTube/Java 4년 전
다형성 (Polymorphism) "다형성 (Polymorphism)" : 하나의 메소드나 클래스가 다양한 방법으로 동작하는 것 class A {} class B extends A {} public class PolymorphismDemo1 { public static void main(String[] args) { A obj = new B(); // A에 정의된 메소드를 실행하면 오버라이딩 된 B의 메소드들이 실행됨 // B에만 정의된 메소드를 실행하면 에러가 발생함 } } interface I {} class C implements I {} public class PolymorphismDemo2{ public static void main(String[] args) { I obj = new C(); } } interface fathe.. onYouTube/Java 4년 전
인터페이스 (Interface) "인터페이스 (Interface)" : 명세서 역할로써, 클래스 외부에서 제어(규제)하기 위한 장치 인터페이스는 형식만 존재함 클래스가 특정 인터페이스를 사용한다면, 그 클래스는 반드시 인터페이스의 메소드들을 구현해야 함 interface I { public void z(); // 형식만 존재 } class A implements I { public void z() {} } 클래스 외부에서 제어할 수 있어야 함으로 안에 있는 메소드는 전부 public이어야 함 하나의 클래스는 여러 개의 인터페이스를 구현할 수 있음 interface I1 { public void x(); } interface I2 { public void z(); } class A implements I1, I2 { public void.. onYouTube/Java 4년 전