[K-디지털 트레이닝] 학습정리 35일차 (2024-08-05)

smoo·2024년 8월 5일

JAVA_STUDY

목록 보기
20/25
post-thumbnail

1. 지네릭(Generic)이란?

  • 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법
  • Java 1.5 부터 나온 개념 : Generic이 나오기 전까지는 참조형 변수 타입을 Object로 받을 수 밖에 없었다.
  • 기능: 자료형을 결정짓지 않고 틀을 만들어 두는 것을 말함 (c++에서는 템플릿 이라고 함)
  • 형태: Object(참조형 타입) 자리에 T들어감 → Generic
    그래서 자료형의 정보를 Object 대신 T로 작성해 비워 두고 인스턴스 생성시 참조 타입을 결정함
  • 등장 배경: Generic이전의 코드에서 Object로 참조 변수를 선언했을 때 발생하는 문제들을 Generic을 사용함으로써 컴파일 단계에서 잡아줄 수 있도록 했음

2.main이 돌아 가도록Box 를 완성하시오.

	public static void main(String[] args) {		
		Box<Apple> abox = new Box<Apple>();
		Box<Orange> obox = new Box<>();
		Box<String> sbox = new Box<>();
		Box<Integer> ibox = new Box<>();
		Box<Double> dbox = new Box<>();		
		dbox.set(1.0);
		double dNum = dbox.get();//형변환도 필요없다.	
		System.out.println(dNum);
}

✅ 소스 구현

class Apple {
	public String toString() {
		return "I am an apple.";
	}
}

class Orange {
	public String toString() {
		return "I am an orange.";
	}
}

class Box<T>{
	private T ob;
	
	public void set(T o) {
		ob = o ;
	}
	public T get() {
		return ob;
	}
}

3. 아래를 Main에 넣고 DBox를 완성하시오.

        DBox<String, Integer> box = new DBox<String, Integer>();
        box.set("Apple", 25);
        System.out.println(box); // Apple & 25개

✅ 소스 구현

class DBox<L, R>{
	private L str;
	private R count;
	
	public void set(L str,R count) {
		this.str = str;
		this.count = count;
	}
	
	@Override
	public String toString() {
		return str +" & "+ count+"개";
	}
	
}

4.아래의 SQL 문을 정리 하시오.

-- 사원테이블(emp)에서 급여 (SAL)가 3000 이상인 사원을 출력하는 쿼리문
select * from emp where sal>=3000;

-- 부서 번호(DEPTNO)가 20인 사원에 관한 정보만 출력하는 쿼리문
select * from emp where deptno=20;

-- 이름(ENAME)이 KING인 사람의 사번(empno), 이름(ename), 급여(SAL)를 출력하는 쿼리문
select empno, ename, sal from emp where ename='KING';

-- 1982년 1월 1일 이후에 입사한 사원을 출력하는 쿼리문
select * from emp where hiredate >= '1982/01/01';
select * from emp where hiredate >= '1982.01.01';

-- 부서번호가 10번이고 job 이 메니져인 사원은?
select * from emp where deptno=10 and job='MANAGER';

-- 부서번호가 10번 or(또는) job 이 메니져인 사원은?
select * from emp where deptno=10 or job='MANAGER';

-- 부서번호가 10 번이 아닌 사원?
select * from emp where deptno<>10;
select * from emp where deptno!=10;
select * from emp where deptno^=10;


5. 쿼리문 중에서 desc 에 대하여 설명하시오.

  • 테이블의 구조를 확인하기 위한 명령어이다
  • SQL*PLUS 명령어 중 하나이다.
  • 테이블의 컬럼 이름, 데이터형, 길이, NULL 허용 유무 등 특정 테이블의 정보를 제공한다.

6. 금일 코딩중 아래를 수정 하여 다시 완성 하시오.

interface Stack {
	int length(); // 현재 스택에 저장된 개수 리턴
	int compacity(); // 스택의 전체 저장 가능한 개수 리턴
	String pop(); // 스택의 톱(top)에 저장
	boolean push(String val); // 스택의 톱(top)에 저장된 문자 리턴
}
  • StringStack 는 객체가 생성될때 기본적으로 3개의 배열을 갖는다.
  • boolean push(String val) 구현시 Stack이 다 차있을경우, 배열의 크기를 원래의 크기보다 2배로 늘리고, 원래 있던 배열의 요소를 새로운 배열로 복사하도록 할것.
profile
코딩 스터디 정리

0개의 댓글