1. 오류의 종류 1)에러(Error) -의도치 않게 프로그램이 종료되는 것을 에러라 함. -하드웨어의 잘못된 동작 또는 고장으로 인한 오류 -에러가 발생하면 프로그램이 비정상 종료가 됨. -정상 실행 상태로 돌아갈 수 없음. 2)예외(Exception) -사용자가 잘못된 조작 or 개발자의 잘못된 프로그래밍으로 인한 오류를 말함. -예외가 발생하면 프로그램이 종료됨. -단, 예외 처리를 추가하면 정상 실행 상태로 되돌릴 수 있음. 2. 프로그램에서의 예외(오류) 1)컴파일 오류(compile error, checked exception) -프로그램 코드 작성 중 발생하는 문법적 오류 -예외 처리 코드가 없다면 컴파일 예외 발생함. -이클립스에서 대부분 detection됨. 2)실행 오류(runtime ..
1. 프로그래밍 방법론 1)절차식 프로그래밍 -순차적인 명령을 수행하고 간단한 분기만 가능 2)구조적 프로그래밍 -특정 변수를 묶어 구조화하고 이를 통해 프로그래밍 효율 높임. 3)객체지향 프로그래밍 -객체를 기반으로 프로그래밍되며 클래스,속성,기능 등의 현실 세계 모델을 반영함. 4)함수형 프로그래밍 -객체의 형태를 벗어나 함수형을 확장해 함수를 변수처럼 사용 가능. 함수형 프로그래밍과 람다식(Lamda expression) 2. 람다식 1)자바는 OOP : 기능을 수행하기 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드 구현 필요. 2)자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라고 한다. 3)함수의 구현과 호출만으로 프로그래밍이 수행되는 방식. 4..
1. 자료(Data)와 자료 구조(Data Structure) 1)자료(데이터)를 어디에 어떻게 관리할 지... -검색, 순회(iterate), 저장, 삭제, 변경... 2)데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요. 3)자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있음. 2. 자료 구조 종류 1)한 줄로 자료를 관리하기(선형 자료구조) -배열(Array) -LinkedList -스택(Stack) -큐(Queue) 2)트리(tree) 3)그래프(graph) 4)해싱(hashing) 3. 배열(Array) 구현 1)동일한 데이터 타입을 순서에 따라 관리하는 자료 구조. 2)정해진 크기가 있음. 3)배열의 i번째 요소를 찾는 인덱스 연산이 빠름 4)JDK 클래스 : ..
Object 클래스 -- 모든 클래스의 최상위 클래스 1. java.lang 패키지 1)프로그래밍 시 import하지 않아도 자동으로 import 됨. 2)많이 사용하는 기본 클래스들이 속한 패키지. 3)String, System, Math, Integer... 2. 모든 클래스는 Object 클래스를 상속받음. 1)모든 클래스는 Object클래스의 메서드 중 일부를 재정의해서 사용할 수 있음. 2)컴파일러가 extends Object를 추가함. - ex) class Book => class Book extends Object 3. toString( ) 메서드 1)객체의 정보를 String으로 바꾸어서 사용할 때 쓰임.(재정의) 2)String, Integer 클래스는 이미 재정의되어 있음. 4. equ..
인터페이스의 여러 가지 요소 1)상수 2)추상메서드 3)디폴트 메서드(java 1.8 이후) -구현을 가지는 메서드. -default 키워드 사용 -구현하는 클래스에서 재정의할 수 있음. 4)정적 메서드(java 1.8 이후) -인스턴스 생성과 상관없이 인스턴스 타입으로 사용할 수 있는 메서드 5)private 메서드 (java 9 이후) -인터페이스를 구현한 클래스에서 사용하거나 재정의할 수 있음. -인터페이스 내부에서만 사용하기 위해 구현하는 메서드 -default 메서드나 static 메서드에서 사용함. 사용 예시 인터페이스의 모든 메서드는 추상 메서드로 선언됨, 모든 변수는 상수로 선언됨. -> public abstract & public static final 은 생략해도 컴파일러가 자동으로 추..
abstract -- 추상적인, 미완성의 1)클래스 앞에 붙을 때 : 클래스 내에 추상메서드가 존재하는 클래스임. 2)메서드 앞에 붙을 때 : 선언부만 존재하고 구현부가 없는 추상 메서드임. 추상 클래스란? 1)개념 -완성되지 않은 설계도 -인스턴스를 생성할 수 없음. =>상속을 통해 자손클래스에서 추상메서드를 다 구현해야 비로소 인스턴스 생성할 수 있음. -추상메서드(선언부만 존재)를 최소 1개 이상 포함하고 있는 클래스. -다른 클래스를 작성하는데 도움을 줄 목적으로 이용됨. 추상 메서드란? 1)메서드의 선언부만 있고 구현부(정의부, 몸통)이 없는 메서드를 말함. public abstract void power(String name); 2)자손마다 다르게 구현될 것이라고 예상될 때 사용함. 3)추상클..
다형성(polymorphism) -사전적 의미 : 여러 가지 형태를 취할 수 있는 능력 -하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것. 즉 조상의 참조 변수로 자손 타입의 객체를 다룰 수 있는 것. =>원래의 타입은 유지됨. =>하나의 코드로 여러 자료형으로 구현되어 실행, 같은 코드로 여러 다른 실행 결과가 나옴. -정보 은닉, 상속과 더불어 OOP의 가장 큰 특징 중 하나임. -다형성은 잘 활용하면 유연하고 확장성있고, 유지 보수가 편리한 프로그램을 만들 수 있음. 다형성으로 인한 형변환(캐스팅) 1) 형변환의 전제 조건 --상속, 구현 관계에 있는 것만 객체 타입 변환이 가능. 2) Up-casting (암시적 형변환) : 자손 타입에서 조상 타입으로 형변환, 형변환 생략 가능. =>조..
상속(inheritance) -기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 -관계없는 두 개 이상의 클래스를 조상(부모), 자손(자식)으로 직접적 관계를 만듦. -자손은 조상의 모든 멤버를 상속받음.(But 생성자, 초기화 블록 제외) -자손의 멤버 개수가 조상보다 적을 수는 없음.(같거나 많음) ==>다형성 개념 적용 -is a관계 : ~은 ~이다. (호랑이는 포유류이다.) -만들어질 클래스에 영향을 가장 많이 주는 클래스는 상속하고 보존적인 것은 포함으로 구현. -자바는 단일 상속만 허용함. 상속하는 클래스 : parent class, base class, super class 상속받는 클래스 : child class, derived class, sub class 포함 관계(composit..