타입을 구체적으로 지정하는 것이 아니라, 추후에 지정할 수 있도록 일반화해두는 것
public class GoodMorning {
public static void main(String[] args) {
Basket<String> basket1 = new Basket<>("apple");
Basket<Integer> basket2 = new Basket<>(1);
}
}
class Basket<T> {
pravate T item;
public Basket(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
위의 T는 타입을 일반화 시켰으므로 타입 매개변수 라고 한다
작성한 클래스 또는 메서드가 특정 데이터 타입에 얽매이지 않게됨
public class GoodMorning {
public static void main(String[] args) {
try{
// 여기 있는 코드를 시도해보고,
}
catch ("예외") { // 예외에 해당하는 예외가 발생하면
// 여기 있는 코드를 실행해!
}
finally {
// 예외가 발생하던 안하던, 여기 있는 코드는 무조건 실행해!
}
}
}
public class GoodMorning {
public static void main(String[] args) {
Person dk = new Person("duekryeol", 30)
System.out.println("시작!!!")
dk = null;
try {
System.out.println("dk.getName() = " +dk.getName());
}
catch (Exception e) {
System.out.println("널에다가 점찍지 마라!");
}
System.out.println("종료!!!!");
}
}
class Person {
private String name;
private int age;
public Basket(T item) {
this.name = name;
this.age = age;
}
public T getName() {
return name;
}
}
public class GoodMorning {
public static void main(String[] args) {
// 자료 구조
}
}
널리 알려져 있는 자료 구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있게하는 컬렉션 + 관련된 인터페이스와 클래스
public class GoodMorning {
public static void main(String[] args) {
// ArrayList
ArrayList<String> al = new ArrayList<>();
al.add("Hello");
al.add("Hi");
al.add("Bye");
for (String el : al) {
System.out.println ("el = " + el);
}
al.remove("Hello");
for (String el : al) {
System.out.println ("el = " + el);
}
System.out.println("al.get(1) = " + al.get(1)));
}
}