국비 지원

국비 지원/SQL

[SQL] DDL, DML, DCL 명령어

DDL : 데이터 정의어(Data Definition Language) 1. CREATE - 데이터베이스 또는 테이블을 생성하는 명령어create database practice; // 데이터베이스 생성use practice; // 데이터베이스 접속create table member( // 테이블 생성 id int not null, name varchar(20) not null, age int not null, addr varchar(100) not null, primary key(id));테이블을 생성하기 전에 먼저 USE 명령어를 통해 데이터베이스에 접근해야 한다. 2. ALTER - 테이블 구조를 변경할 때 사용하는 명령어 컬럼 추가 : ADD-- 컬럼 추가(ADD)al..

국비 지원/JAVA

[JAVA] 예외 처리

예외 처리 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외는 곧바로 종료되는 에러와 비슷하지만 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지를 할 수 있다는 점에서 다르다고 할 수 있다. 예외의 종류 1. 일반 예외 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사하는 것을 말한다. 2.실행 예외 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일하는 과정에서 예외 처리 코드가 있는지 검사하지 않는 것을 말한다. RuntimeException의 하위 클래스가 아니면 일반 예외 클래스이고, 하위 클래스이면 실행 예외 클래스이다. 클래스 상속 관계에서 부모에 ..

국비 지원/JAVA

[JAVA] final과 상수(static final)

final 필드 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없는 필드를 말한다. final 필드에서 초기값을 줄 수 있는 방법은 1) 필드 선언 시에 주는 방법과 2) 생성자에서 주는 방법으로 두 가지밖에 없다. public class Example { final String nation = "한국";// 필드 선언시 초기화 final String name; int age; public Example(String name, int age) { this.name = name;// 생성자에서 초기화 this.age = age; } } public class FinalEx { public static void main(String[] args) { Example e = ne..

국비 지원/JAVA

[JAVA] 익명 함수와 람다 함수

익명 함수 먼저 익명 함수라는 것은 말 그대로 이름이 없는 함수를 말한다. 익명 함수를 사용하는 이유는 나중에 다시 부를 일이 없으므로 프로그램 안에서 일시적으로 한 번만 사용되고 버려져도 되는 객체일 때 사용하는 것이다. 일회성이기 때문에 메모리 관리에서 효과적이다. 바로 익명 함수를 사용하는 예제를 보도록 하자. public abstract class AMin { public abstract int getMin(int x, int y); } // AminAnonymous 클래스를 사용한 익명 함수 사용 public class AminAnonymous{ public static void main(String[] args) { AMin aMin = new AMin() { @Override // 외부에서 ..

국비 지원/JAVA

[JAVA] 다중 상속과 추상 클래스와 인터페이스의 차이점

다중 상속 추상 클래스와 인터페이스를 공부했다면 추상 클래스와 인터페이스의 차이점에 대해 의문이 생길 것이다. 추상 클래스와 인터페이스의 공통점은 메소드의 선언만 할 수 있고 구현부가 없다는 점, 상속받은 클래스에서 추상 메소드를 구현해야 한다는 점이라고 할 수 있다. 그러면 추상 클래스 하나만 있어도 인터페이스의 역할을 다 할 수 있는 것이 아닐까?라는 생각이 들텐데 자바의 다중 상속 부분에서 차이가 난다. 일단 자바는 다중 상속이 불가능하다. 여기서 다중 상속이란 아래와 같이 자식 클래스의 부모가 여러 개인 것을 말한다. // 잘못된 코드 public class Vehicle extends Bus, Car { } 그러면 왜 다중 상속이 불가능할까라는 생각이 들 것이다. 만약에 Bus 클래스에도 dri..

국비 지원/JAVA

[JAVA] 인터페이스 (+ 다운 캐스팅)

인터페이스 인터페이스란 실제 메소드를 정의하고 구현하는 것이 아니라 메소드의 헤더 부분(시그니처)만 선언하며, 이 메소드를 실제 정의하는 클래스에서 메소드 본체를 완성하는 것을 말한다. 개발 코드와 객체가 서로 통신하는 접점 역할을 하는데 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. 여기서 개발 코드가 직접 객체의 메소드를 호출하면 되는데 왜 중간에 인터페이스를 두는 것인지 의문이 생길 수도 있다. 그 이유는 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해 인터페이스를 사용하는 것이라고 할 수 있다. 즉, 코드 변경 없이 실행 내용과 리턴 값을 다양화할 수 있다는 장점을 가지게 된다는 것이다. 인터페이스는 상수 필드와 추상 메소드만을 구성 멤..

국비 지원/JAVA

[JAVA] abstract 추상 클래스와 추상 메소드 (+ 업캐스팅)

사전적 의미로 추상은 실체 간에 공통되는 특성을 추출한 것을 말한다. 추상 클래스 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 한다. 즉, abstract 키워드가 붙는 클래스는 객체로 인스턴스를 생성할 수 없다는 뜻이다. 그리고 실체 클래스와 추상 클래스는 상속 관계를 가지고 있다. 이러한 추상 클래스의 예로 동물을 들 수 있다. 동물 클래스는 현실 세계에 실체가 없으므로 abstract를 사용한 추상 클래스라고 할 수 있고, 실제로 존재하는 물고기, 새 등이 실체 클래스라고 할 수 있다. public abstract class AbstractCalc { int add(int x, int y) { return x+y..

국비 지원/JAVA

[JAVA] 부모 생성자 호출 super() / 부모 메소드 호출 super

부모 생성자를 호출하는 super() super()는 부모의 기본 생성자를 호출하기 위해서 사용한다. 만약에 자식 클래스의 생성자가 명시적으로 생성되지 않는다면 컴파일러는 아래와 같은 기본 생성자를 생성한다. public 자식 클래스명(){ super(); } 기본 생성자를 추가해주는 것은 앞에서 정리한 내용이라 익숙한데 super()라는 코드가 새롭게 추가된 것을 볼 수 있다. 자바 컴파일러는 부모 클래스의 생성자를 명시적으로 호출하지 않는 모든 자식 클래스의 생성자 첫 줄에 자동으로 super()를 추가하여, 부모 클래스의 멤버를 초기화할 수 있도록 해준다. 만약 직접 자식 생성자를 선언하고 명시적으로 부모 생성자를 호출하고 싶다면 아래와 같이 작성하면 된다. 자식 클래스명(매개변수1, 매개변수2, ..

아민_
'국비 지원' 카테고리의 글 목록 (4 Page)