2/27(월) static 변수, Object 변수, 제네릭 함수

정민지·2023년 2월 27일
0


10을 객체화 하면 매개변수만 다른 여러 함수 안만들어도 됌

예전엔 이렇게 수동으로 박싱 해주었음

=> 자바5부터 자동 박싱,언박싱 해줌

package org.example;
//code.oa.gg/java8/1350
// 문제 : 제너릭을 사용해서 중복을 제거해주세요.

class Main {
    public static void main(String[] args) {
        Int저장소 a저장소1 = new Int저장소();

        a저장소1.setData(30);
        int a = a저장소1.getData();

        System.out.println(a);

        Double저장소 a저장소2 = new Double저장소();

        a저장소2.setData(5.5);
        double b = a저장소2.getData();

        System.out.println(b);


        사과저장소 a저장소3 = new 사과저장소();

        a저장소3.setData(new 사과());
        사과 c = a저장소3.getData();

        System.out.println(c);
    }
}

class Int저장소 {
    Object data;

    int getData() {
        return (int)data;
    }

    void setData(Object inputedData) {
        this.data = inputedData;
    }
}

class Double저장소 {
    Object data;

    double getData() {
        return (double)data;
    }

    void setData(Object inputedData) {
        this.data = inputedData;
    }
}

class 사과 {
}

class 사과저장소 {
    Object data;

    사과 getData() {
        return (사과)data;
    }

    void setData(Object inputedData) {
        this.data = inputedData;
    }
}

object 코드-> 데이터를 꺼낼때마다 형변환 해야됌
-> 형변환 없애고 싶음 타입이 다른 매개변수 처리할땐 제네릭 함수 활용


class 저장소<T> {
	Object data;
	
	T getData() {
		return (T)data;
	}
	
	void setData(T inputedData) {
		this.data = inputedData;
	}
}

profile
꾸준히 성장하는 개발자

0개의 댓글