반응형

프로그래밍 176

01_OracleDB_SQL 함수 연습 문제

함수 연습 문제 1. 직원명과 주민번호를 조회하세요. 단, 주민번호 9번째 자리부터 끝까지는 '*'문자로 채운다. 예 : 홍길동 771120-1****** SELECT EMP_NAME 직원명 , SUBSTR(EMP_NO, 1, 8) || '******' 주민번호 FROM EMPLOYEE; 2. 직원명, 직급코드, 연봉(원) 조회하세요. 단, 연봉은 ₩57,000,000 으로 표시되게 한다. 연봉은 보너스 포인트가 적용된 1년치 급여이다. SELECT EMP_NAME 직원명 , JOB_CODE 직급코드 , TO_CHAR((SALARY + (SALARY * NVL(BONUS, 0)))*12, 'L999,999,999') "연봉(원)" FROM EMPLOYEE; 3. 부서코드가 D5, D9인 직원들 중에서 2..

01_OracleDB SQL : SESECT 기본문법 및 연산자

SESECT 기본문법 및 연산자 SELECT 조회하고자 하는 컬럼명을 기술, 쉼표로 구분하며 마지막 컬럼 다음은 쉼표 표시x FROM 조회 대상 컬럼이 포함된 테이블명 기술 WHERE 행을 선택하는 조건 작성, 각각의 제한 조건은 논리 연산자로 연결, 제한 조건이 true일때만 Reaslt Set에 포함 SELECT 기본 작성법 SELECT 컬럼명 , 컬럼명 , 컬럼명 FROM 테이블명 WHERE 조건식; 모든 컬럼 조회 시 컬럼명 대신 * 기호 사용 SELECT * FROM EMPLOYEE; 컬럼 별칭 짓기 AS + 별칭 SELECT EMP_NAME AS 이름 , SALARY * 12 "1년 급여(원)" , (SALARY + (SALARY * NVL(BONUS, 0))) * 12 AS "총 소득(원)"..

[자바JAVA] 추상클래스와 인터페이스

추상클래스 추상메소드를 0개 이상 포함하는 클래스 추상메소드 없어도 됨 필드 가능. 생성자가능-> 객체화가능. 일반 메소드 가능. 미완성 메소드(추상메소드)가능 추상클래스로는 인스턴스 생성 불가능 (x) Product pro = new Product() ; 다형성을 활용하여 상속받은 하위 클래스에 인스턴스 생성 후 추상클래스 사용 추상클래스의 추상메소드는 오버라이딩 강제성 부여 추상메소드 메소드의 선언부만 있고 구현부가 없는 메소드 반드시 abstract 키워드를 메소드 헤드에 작성 해야 함. public abstract void method(); 인터페이스 추상 메소드와 상수 필드만 가질 수 있는 클래스의 변형체 필요한 기능을 공통화 해서 강제성을 부여할 목적(표준화) 인터페이스는 다중상속이 가능함. ..

[자바JAVA] 다형성(동적바인딩, 클래스형변환)

다형성 객체지향 프로그래밍의 3대특징 1 . 캡슐화 2 . 상속 3 . 다형성 하나의 인스턴스가 여러가지 타입을 가질 수 있는 것을 의미 결합도를 낮춰 유지보수성과 생산성 증가 상속 관계에 있는 모든 객체는 동일한 메시지를 수신할 수 있음 확장성이 좋은 코드 작성 가능 1 . 다형성 구현 : 동적바인딩 동적바인딩 : 컴파일시에는 해당 타입의 메소드와 연결되어 있다가 실행 시간(runtime)에 실제 객체가 가진 오버라이딩 된 메소드로 바인딩이 바뀌어 동작하는 것 상속 관계로 이루어져 다형성이 적용되어야하고 메소드 오버라이딩이 되어 있어야 함. 하나의 메소드 호출로 각기 다른 객체의 다른 메소드를 동작 시키게 함 2 . 클래스 형변환 (class type casting) 객체별로 고유한 기능은 동작시키지 ..

[자바JAVA] 상속(super,오버라이딩@Override)

상속 객체지향 프로그래밍의 3대특징 1 . 캡슐화 2 . 상속 3 . 다형성 상위클래스가 하위클래스를 상속 받아 멤버 변수와 메소드를 사용할 수 있음 멤버 외에 타입 또한 상속 가능. 자바는 단일 상속만 지원(하나의 클래스만을 상위클래스로 가짐) 클래스 간의 상속 시에는 클래스 선언부에 extends(확장) 예약어 사용 ex) class B extends A{ } B 클래스가 A클래스를 상속받는다. IS-A : 자식클래스는 하나의 부모 클래스이다. 하위클래스끼리는 접근 불가 IS-A 관례로 구분되는 경우에만 사용하는게 좋음 상속의 장점 : 클래스의 재사용, 다형성 문법 가능 상속의 단점 : 상위 클래스 기능 변경시 하위 클래스 동작 유무 예측이 힘듦 상속 키워드 1 . super 상위클래스의 인스턴스 주..

[자바JAVA] 객채 배열(초기화, 저장구조)

객체 배열 레퍼런스 변수에 대한 배열 배열로 동일한 타입의 여런 인스턴스들을 관리하며 연속 처리 할 수 있어서 유용함. 클래스명 배열명[] = new 클래스명[배열크기]; 1. 초기화 방법 인덱스를 이용한 초기화 배열명[] = new 클래스명(); Car[] carArray = new Car[5]; carArray[0] = new Car("페라리", 300); carArray[1] = new Car("람보르기니", 350); carArray[2] = new Car("롤스로이스", 250); 선언과 동시에 할당 및 초기화 클래스명 배열명[ ] = {new 클래스명(), new 클래스명()}; Car[] carArray = {new Car("페라리", 300), new Car("람보르기니", 350), ne..

[자바JAVA] 변수의 종류(지역변수, 전역변수, 매개변수, 클래스 변수)

변수의 종류 1. 클래스 변수 - static 키워드를 가지고 필드에 선언하는 변수 = 정적 필드 (메모리의 static영역 사용) - 프로그램 시작시 생성, 프로그램 종료시 소멸 2. 멤버 변수(인스턴스 변수) - static 키워드 없이 필드에 선언하는 변수 (메모리의 heap영역 사용) - 인스턴스 생성 시 생성, 참조하지 않을시 소멸(가비지컬렉터가 소멸시킴) 3. 지역 변수 - 메소드, 생성자, 초기화 블록 내부에서 선언하는 변수 - 메소드 호출 시 생성, 메소드 종료시 소멸 public class KindsOfVariable { 클래스 영역의 시작 (1) 클래스 영역에 작성하는 변수를 필드라고 함 (2) 인스턴스 변수(=전역변수) private int globalNum; (3) 클래스 변수(=정..

[자바JAVA] Final & static ( 필드, 메소드)

final 변경 불가의 의미를 담고 있는 키워드 클래스 필드의 final 변수는 선언과 동시에 초기화 하거나 생성자를 통한 초기화를 해야 함( 인스턴스 생성만 하면 기본 값 0이 필드에 들어가기 떄문에) (1) 선언과 동시에 초기화 하기 private final int NON_STATIC_NUM = 1; (2) 생성자를 이용해 초기화 하기 private final String NON_STATIC_NAME; public Test(String nonStaticName) { this.NON_STATIC_NAME = nonStaticName; } (3) static field에 final사용 private static final int STATIC_NUM = 1; 생성자의 이용한 초기화는 불가능. static은..

[자바JAVA] 파라미터(parameter)_가변파라미터

파라미터 public void method( "박보검", 5 ) 에서 박보검, 5를 파라미터라고 한다. 즉 메소드 수행에 필요한 입력값을 저장하는 변수(매개변수)이다. 메소드의 파라미터 선언부에는 다양한 종류의 값을 인자로 전달하여 호출 가능하다 매개변수(parameter)로 사용 가능한 자료형 기본자료형 기본자료형 배열 클래스자료형 클래스자료형 배열 가변인자 가변 인자 test (1) 가변 변수 작성 public void Parameter(String name, String... hobby) { => 가변길이의 배열은 몇 개가 매개변수로 절달 될지 모르기 때문에 이름과 구분하기 위해 뒤쪽에 작성해야한다. (앞쪽에 작성하면 오류, 중간에 있어도 오류, 여러개 사용해도 오류) System.out.print..

[자바JAVA] 오버로딩 (Overloading)

1 . 오버로딩 자바에서는 파라미터 갯수가 다르면 다른 메소드로 인식을 한다. 동일한 메소드명으로 다양한 종류의 매개변수에 따라 다르게 처리해야하는 것을 관리하기 위해 사용하는 기술 동일한 메소드명의 매개변수인 타입, 개수, 순서를 다르게 작성 (메소드의 시그니처가 다르지만 메소드 명은 같게 함) 2 . 오버로딩의 사용 이유 동일한 이름으로 다양한 종류의 매개변수에 따라 처리해야 하는 여러 메소드를 동일한 이름으로 관리하기 위해 사용 3 . 오버로딩의 조건 시그니쳐 중 메소드 이름은 동일하게 작성하고 파라미터 선언부를 다르게 작성 해야 오버로딩이 성립됨 메소드의 시그니쳐? 메소드의 메소드명과 파라미터 선언 부분 ex) public void mehod(int num) {} => method(int num)..

반응형