고급JAVA 5강 - Properties, Args, Generic(제네릭)

Properties

Properties객체는 Map보다 축소된 기능의 객체라고 할 수 있다.
Map은 key값과 value값에 모든 형태의 객체를 사용할 수 있다.
Properties는 key값과 value값에 String만 사용할 수 있다.

Map은 put()메서드와 get()메서드를 이용해서 데이터를 입출력하지만
Properties는 setProperty()메서드와 getProperty()메서드를 사용해서 입출력 한다.

Properties는 데이터를 파일로 입출력할 수 있다. - 환경설정 할 때 많이 사용했음

 Properties prop = new Properties();

       //데이터 추가하기
        prop.setProperty("name", "홍길동");//제네릭이 없음 key, value값 모두 String이라서
        prop.setProperty("age", "20");
        prop.setProperty("age2", String.valueOf(20)); //숫자를 문자화해서 입력해야 함.
        prop.setProperty("tel", "010-1234-5678");
        prop.setProperty("addr", "대전");
	
	//데이터 읽어오기
	String name = prop.getProperty("name");
	int age = Integer.parseInt(prop.getProperty("age"));
	String tel = prop.getProperty("tel");
	String addr = prop.getProperty("addr");
	
	System.out.println("이름 : " + name);
	System.out.println("나이 : " + age);
	System.out.println("전화 : " + tel);
	System.out.println("주소 : " + addr);

Args

// 매개변수로 여러 개의 정수들을 받아서 이 정수들의 합계를 구하는 메서드 (이 정수들의 개수는 상황에 따라 다르다.)

public int sumArr(int[] data) {
	int sum = 0;
	for(int a : data) {
		sum += a;
	}
	return sum;
}

가변형 인수 ==> 메서드의 인수값의 개수가 메서드를 호출할 때마다 다를 때 사용한다.

  • 가변형 변수는 메서드 안에서는 배열로 처리된다.
  • 가변형 변수는 한가지 자료형만 사용할 수 있다.
//가변형 인수를 이용한 메서드
public int sumArgs(int...data) {
	int sum = 0;
	for(int a : data) {
		sum += a;
	}
	return sum;
}

//가변형 변수와 일반적인 매개변수를 혼합해서 사용할 수있다.
//단, 이 때는 가변형 변수를 제일 뒤쪽에 배치한다.
public String sumArg2(String name, int...data) {
	int sum = 0;
	for(int a : data) {
		sum += a;
	}
	
	return name + "씨 총점 : " + sum;
}

Generic 제네릭

제네릭 클래스를 만드는 방법
형식)
class 클래스명<제네릭타입글자>{
제네릭타입글자 변수명; // 변수 선언에 제네릭을 사용한 경우
...

제네릭타입글자 메서드명(매개변수들...){ // 메서드의 반환값에 제네릭을 사용한 경우
...

return 값;
}

반환값타입 메서드명(제네릭타입글자 변수명){ //메서드의 매개변수에 제네릭을 사용한 경우
...
}

제네릭을 지정한 클래스

class MyGeneric<T>{//제네릭 타입글자(T), 제네릭은 여러개 사용 가능<T, V, E>
    private T val; //변수에 제네릭 사용

    public void setVal(T val) { //메서드의 매개변수에 제네릭 사용
        this.val = val;
    }

    public T getVal() { //반환값에 제네릭 사용
        return val;
    }
}

제네릭을 지정하지 않은 보통 클래스

class NonGeneric{
    private Object val;

public void setVal(Object val) {
	this.val = val;
}

public Object getVal() {
	return val;
}

}

좋은 웹페이지 즐겨찾기