programming/java

    [Java] 예외처리

    15. 예외처리 15.1 예외 처리(Exception Handling) 15.1.1 예외처리란? 프로그램이 실행되는 동안 특정한 문제가 일어났을 때 처리를 중단하고 다른 처리를 하는 것 15.1.2 예외가 발생하는 원인 15.1.2.1 시스템 장애 네트워크 오류 사용권한 문제 15.1.2.2 사용자의 입력 실수 존재하지 않는 파일 이름 입력 숫자값 입력란에 일반 문자 입력 받아들일 수 없는 연산 15.1.2.3 에러, 경고, 예외 Error: 컴파일이 안됨 Warning: 실행은 되지만 성능 저하 등의 문제가 발생 가능성 Exception: 컴파일과 실행은 되지만 프로그램이 비정상적으로 종료되는 경우 15.1.2.4 예외 처리를 하는 경우 선택적인 예외 처리 : 예상되는 코드에 처리 필수적인 예외 처리 ..

    [Java] 제네릭과 컬렉션

    14. 제네릭과 컬렉션 14.1 일반화(Generic) 다양한 자료형의 데이터를 처리하기 위해서는 일반화(Generic) 작업이 필요함 // : Declare generic type public class ReactiveBuffer extends Block { public java.util.List buffer = new ArrayList(); // Parameter defined by UML. Do not edit. public final boolean allowDuplicates; public boolean bufferIsEmpty() { return buffer.size()

    [DAY 04] 계산기 프로그램 구현

    1234567891011121314151617#define _CRT_SECURE_NO_WARNINGS#include void main(){ int num1, num2; char oper; printf("Enter the 1st number : "); scanf("%d", &num1); printf("Enter operator : "); scanf("%c", &oper); printf("Enter the 2nd number : "); scanf("%d", &num2); printf("%d %c %d = %d \n", num1, oper, num2, num1 + num2);}Colored by Color Scriptercs operator의 문제점 123456789101112131415161718192021..

    [Java] 내부 클래스

    12. 내부 클래스 12.1 내부(중첩) 클래스(inner class, nested class) 12.1.1 내부 클래스의 정의 클래스 안에 선언된 클래스 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언한다. GUI 애플리케이션(AWT, Swing)의 이벤트 처리에 주로 사용됨 내부 클래스도 클래스이기 때문에 외부클래스$내부클래스.class로 컴파일됨 12.1.2 장점 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 코드의 복잡성을 줄일 수 있다. 12.1.3 단점 코드의 재사용이 어려움 class AA { static class BB { static int bb = 20; static class CC { int cc = bb + 10; } } } public class C..

    [Java] class(추상화)

    11. class(추상화) 11.1 객체지향 프로그래밍의 4대 특성 11.2 추상화 11.2.1 객체에서 공통된 속성과 행위를 추출하는 것 11.2.2 자바 프로그램에서의 추상화 11.2.2.1 추상클래스 1개 이상의 추상 메서드 11.2.2.2 인터페이스 모두 추상 멤버 11.3 추상 클래스(abstract class) 11.3.1 abstract method(미완성 메서드)를 포함하고 있는 클래스 abstract method: 선언부만 있고 구현부(body)가 없는 메서드 11.3.2 추상클래스는 인스턴스를 생성할 수 없다. 추상클래스를 상속받는 자식클래스에서 abstract method를 완성해야 함 11.3.4 코드의 공통적인 부분을 제시하고 표준화하기 위한 용도로 활용됨 abstract clas..

    [Java] static, final, 다형성

    10. static, final, 다형성 10.1 static 10.1.1 static 정지상태, 고정적인, 변화가 없는 static의 반대말: dynamic 10.1.2 static member static variable(정적 변수) 어디서든 공유해서 사용할 수 있는 변수 static method(정적 메서드) 10.1.3 static member의 특성 프로그램이 실행되면 메모리(클래스 영역)에 자동으로 로딩됨 프로그램이 끝날 때까지 메모리에 상주함 static method에서는 static member만 사용 가능함 10.1.4 dynamic member의 특성 프로그램 실행 중에 필요할 때 만들어지고 필요없으면 삭제됨 stack, heap 영역에 저장됨 10.2 JVM(Java Virtual M..

    [Java] class(상속)

    9. class(상속) 9.1 상속(Inheritance) 9.1.1 상속의 정의 class Child extends Parent { // (...) } 기존의 클래스를 확장하여 새로운 클래스를 작성하는 것(코드 재사용) 두 클래스를 부모와 자식으로 관계를 맺어주는 것 자식은 부모의 모든 멤버를 상속받는다(생성자와 private 제외, protected는 가능함). 1개의 클래스만 상속받을 수 있음(다중상속 금지) 부모클래스(기본클래스, Parent) 자식클래스(파생클래스, Child) 9.1.2 다중상속 자바에서는 다중상속이 금지됨(C++에서는 가능) 9.1.3 is a 관계 상속관계가 있는 클래스들은 자식클래스 is a 부모클래스의 관계로 정의될 수 있음 Student is a Person(O) Pe..

    [Java] 생성자(Constructor)

    8. 생성자(Constructor) 8.1 생성자(Constructor)의 특징 특별한 형태의 method 클래스 이름과 같은 method 리턴타입이 없음(void라고 할 수 있음) object가 생성될 때 자동호출됨(개발자가 직접 호출할 수 없음) new 클래스이름() new 클래스이름: object 생성 클래스이름(): 생성자가 호출됨 용도: 객체의 초기화 작업(기본작업)을 처리 8.2 기본 생성자(default constructor) 매개변수가 없는 생성자 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다. 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다. class DefaultConstructor { int x; public void setX(int x) { t..

    [Java] 클래스와 객체

    7. 클래스와 객체 7.1 객체지향프로그래밍(Object Oriented Programming)의 개요 7.1.1 소프트웨어 위기(software crisis) 7.1.1.1 소프트웨어 위기 소프트웨어 규모의 대규모화, 복잡화에 따른 개발비용 증대 하드웨어 비용에 대한 소프트웨어 가격 상승폭 증가 유지보수의 어려움과 개발정체 현상 발생 프로젝트 개발 및 소요예산 예측의 어려움 신기술에 대한 교육 및 훈련의 부족 7.1.1.2 객체지향프로그래밍은 소프트웨어 위기를 해결하기 위한 방안의 하나임 유지보수 비용의 감소 7.1.2 객체지향프로그래밍(Object Oriented Programming, OOP) 과학, 군사적 모의실험(simulation)을 위해 컴퓨터를 이용한 가상세계를 구현하려는 노력으로부터 객체..

    [Java] Method

    6. Method 6.1 Method 6.1.1 Method의 정의 작업을 수행하기 위한 명령문의 집합 어떤 값을 입력받아서 처리하고 그 결과를 돌려준다. 입력받는 값이 없을 수도 있고 결과를 돌려주지 않을 수도 있다. Method = Function 6.1.2 메서드의 장점 반복적인 코드를 줄이고 코드의 관리가 용이하다. 반복적으로 수행되는 여러 문장을 메서드로 작성한다. 6.1.3 Method의 구성 6.1.4 Method 호출(call) 6.1.4.1 값에 의한 호출(call by value) - 데이터 복사(깊은 복사) 6.1.4.2 주소값에 의한 호출(call by reference, call by address) - 데이터 참조(얕은 복사) 6.1.5 Method의 매개변수(Parameters..

    [Java] 배열(Array)

    5. 배열(Array) 5.1 배열이란? 5.1.1 배열의 정의 다수의 데이터를 저장하고 처리하기 위하여 같은 자료형의 여러 변수를 하나의 묶음으로 다루는 것 예) 단독주택과 아파트 5.1.2 대량의 데이터를 처리할 때 유용 5.2 배열의 선언과 생성 5.2.1 배열참조변수 자료형[] 배열참조변수; 배열참조변수는 stack 영역에 생성됨 int num; 선언방법 선언 예 타입[] 변수이름; int[] score; String[] name; 타입 변수이름[]; int score[]; String name[]; 5.2.2 배열의 생성 배열참조변수 = new 자료형[데이터의 개수]; new로 생성한 배열 데이터는 heap 영역에 생성됨 num = new int[5]; 5.2.3 배열참조변수의 선언과 배열 생성..

    [Java] 조건문과 반복문

    4. 조건문과 반복문 4.1 if 조건문 4.1.1 조건식이 true일 경우에만 실행됨 /** * Syntax: The if Statement * * if: Java keyword * condition: boolean expression * statement: executed if the condition is true and skipped otherwise */ if (condition) { statement } 4.1.2 if ~ else(양자택일형) 4.1.3 다양한 조건의 if문 4.1.4 중첩 if(nested if) if문 안에 또 다른 if문을 중첩해서 넣을 수 있다. if (조건식1) { // 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다. if (조건식2) { // 조건식1과..