프로그램 에러 컴파일 에러 (compile - time error) : 컴파일 할 때 발생하는 에러 런타임 에러(runtime error) : 실행 할 때 발생하는 에러 논리적 에러(logical error) : 작성 의도와 다르게 동작 - java 런타임 에러 에러 (error) 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 (exception) 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 -예외처리의 정의와 목적 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는것 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지하는 것 Object : 최고 조상 Throwable : 클래스,모든 오류의 조상 Excetion , Error : 미약..
인터페이스의 장점 - 두 대상(객체)간의 연결, 대화, 소통을 돕는 중간 역할을 한다. (ex윈도우) - 선언과 구현을 분리 (변경에 유리한 유연한 설계) - 개발시간을 단축한다. - 표준화가 가능하다. (JDBC) - 서로 관계없는 클래스들을 관계를 맺어줄 수 있다. 클래스 B 를 인터페이스 사용해서 나타내기 class B { public void method() { System.out.println("methodB"); } } interface I { public void method(); } 위의 코드를 보면 메서드를 멤버로 받는 새로운 인터페이스를 선언한다. 추상메서드로 만들어 선언부(껍데기)만 떼어낸다. class B inplements I { public void method() { Syste..
참조변수의 형변환 ▶ 조상 자손관계의 참조변수는 서로 형변환 가능 class Car {} class FireEngine extends Car { } class Ambulance extends Car { } FireEngine , Ambulance 가 있는데 둘다 car의 자손이다. 아래의 그림으로 보면 이러한 상속관계를 볼 수 있다. 형변환의 특성으로 조상 자손 관계의 참조변수는 서로 형변환이 가능하다. 그렇기 때문에 Car 클래스의 자손들은 조상 자손 관계가 충족되기 때문에 형변환이 가능하다, 하지만 형제들끼리는 형변환이 가능하지 않다. class Car { String color; int door; void drive(){ //운전하는 기능 System.out.println("drive~"); } v..
다형성(polymorphism) ▶ 여러 형태를 가지는 특성 ▶ 조상타입 참조변수로 자손타입 인스턴스를 다루는 것 class Tv{ boolean power; int channel; void power() {power =!power;} void channelUp() {++channel; } void channelDown() { --channel;} } class SmartTv extends Tv{ String text; void caption() {//내용생략} } 위의 코드를 보면 타입이 일치하고 있는 것을 볼 수 있다. 다형성을 배우기 전까지는 이러한 형태로 타입을 일치시켜서 사용을 하였다. 다형성은 이러한 타입이 불일치시키는 것을 말한다. 아래의 코드를 보면 타입이 불일치하는 것을 볼 수있다. 쉽게..
제어자(modifier) 클래스와 클래스의 멤버(멤버 변수, 메서드) 에 부가적인 의미 부여 ▶ 접근제어자 : public, protected, (default), private ▶ 그 외 : static, final, abstract, native, transient, synchronized main() 메서드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해서 필드, 생성자, 메서드를 설계한다. 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막아야 한다. 또한 특정 메서드를 호출할..
데이터베이스 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다. 데이터베이스에 속해있는 모델은 다양하다. 데이터베이스를 간단히 정의하면 ‘대용량의 데이터 집합을 체계적으로 구성해 놓은 것이다. DBMS 데이터베이스 관리 시스템 다수의 사용자들이 데이터베이스 내의 데이터를 접근 할 수 있도록 해주는 소프트웨어 도구의 집합이다. 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다. 파일시스템의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해서 사용되기 시작하였다. DBMS의 유형은 크게 계층형Hierarch..
참조변수 super - 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자)내에만 존재 - 조상의 멤버를 자신의 멤버와 구별할 때 사용 ex1) Parent 클래스와 child클래스가 생성되어있다. child클래스는 상위클래스인 Parent 를 상속받고 있으며 각 클래스에는 int x 변수가 들어있다. c.method() 메서드를 호출하면 참조변수 c가 가르키는 child 객체가 생성된다. 이름이 겹칠 때에는 조상의 멤버에는 Super. , 자신의 멤버에는 this.을 사용하여 구별한다. 결과 x = 20 this.x = 20 super.x = 20 ex2) ex1과 비슷하지만 상위클래스인 Parent2에만 int x 변수가 있다. x가 상위클래스에 하나밖에 없기 때문에 Super.x 와 this.x..
메서드 오버라이딩(Overriding) - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 class Point{ int x; int y; String getLocation() { return "x:" + x + ",y:" + y; } } class Point3D extends Point { int z; String getLocation() { //오버라이딩 return "x:" + x + ",y:" + y + ",z:" + z; } } 오버라이딩 메서드를 선언할 때 주의할점은 선언부는 그대로 써야한다. 변경이 불가능하며 내용만 변경을 한다. 오버라이딩의 조건 1. 선언부가 조상클래스의 메서드와 일치해야한다. 2. 접근제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. 3. 예외는 조상 클..