전체 글
-
오류와 예외(Error, exception)백엔드/자바 2020. 8. 11. 01:54
오류 프로그램을 실행하면서 어떤 원인에 의해 오작동 또는 비정상적으로 종료되는 경우 이를 에러(오류)라고 부른다. 이러한 에러는 크게 3가지로 나뉜다. ◎ 컴파일 에러: 컴파일 시에 발생하는 에러 ◎ 런타임 에러: 컴파일 단계는 통과했으나 실행시 발생하는 에러 ◎ 논리적 에러: 실행은 되지만, 의도와 다르게 작동하는 것 자바는 이러한 비정상적인 작동, 오작동을 에러(Error)과 예외(Exception)으로 구분했다. 에러(Error)와 예외(Exception)의 차이점 ◎ 에러는 프로그램 코드에 의해 수습될 수 없는 심각한 오류 ex) 스택 오버플로우, 메모리 부족 등 ◎ 예외는 발생하더라도 수습이 가능한 에러보다 낮은 단계의 오류를 말함 ◎ 에러는 발생시 비정상적인 종료를 막을 수 없지만, 예외는 적..
-
익명 클래스(anonymous class)백엔드/자바 2020. 8. 11. 01:01
익명 클래스란? 클래스의 선언과 객체 생성과 동시에 단 한번 사용할 수 있게 만든 클래스를 말한다. 그래서 단 한번만 사용되고 오직 하나의 객체만 생성가능한 일회용 클래스이다. 이름이 없어서 생성자를 가질 수 없고 단 하나의 클래스를 상속받거나 하나의 인터페이스만 구현 가능하다. 익명 클래스의 구조는 다음과 같다. 인터페이스 자료형 + 참조변수명 = new + 인터페이스 자료형 ( ) + { 인터페이스의 메서드 오버라이딩 } interface Anony{ // 'Anony' 인터페이스 선언 void test(); // 'test' 추상 메서드 선언 } class Normal_Class{ // 'Normal_Class' 일반 클래스 선언 public void test2(){}; // 'test2' 일반 메..
-
추상클래스, 인터페이스와 다형성백엔드/자바 2020. 8. 7. 04:27
다형성이란? 일반 클래스의 상속 관계처럼 다형성이란 '다형성이란 여러 형태를 가질 수 있는 성질'을 말한다. 일반 클래스들의 상속 과정의 다형성의 포인트는 다음과 같았다. ◎ "상속 관계에서 부모 클래스가 자식 클래스들을 대표 한다" 부모 클래스를 자료 타입으로 하는 참조 변수가 자손 클래스의 인스턴스를 가질 수 있다는 것이다. 추상 클래스, 인터페이스와 다형성 일반 클래스 상속과 다형성의 관계와 같이 추상클래스, 인터페이스도 그와 동일한 구조를 갖는다. 즉 추상클래스, 인터페이스를 상속한 자손 클래스의 인스턴스의 주소값을 추상클래스, 인터페이스를 자료형으로 하는 참조 변수가 참조할 수 있다는 것이다. interface Human{ // 인터페이스 'Human' 선언 String me(); // 반환값이..
-
인터페이스 (interface)백엔드/자바 2020. 8. 7. 03:38
인터페이스란? 인터페이스는 일종의 추상 클래스로서 일반적인 추상 클래스보다 추상화가 심하다. 추상 클래스는 추상 메서드 뿐 아니라 일반 메서드, 일반 멤버 변수를 가질 수 있다. 하지만 인터페이스는 추상 메서드와 상수만을 가질 수 있고 그 외 어떤 요소도 허용치 않는다. 사람의 얼굴로 치면 인터페이스는 뼈대, 추상 클래스는 피부, 일반 클래스는 눈코입이라고 할 수 있다. 그만큼 추상 클래스와 더불어 다른 클래스에 도움을 주는 목적으로 만들어진다. 인터페이스의 사용 이유 인터페이스의 사용 이유는 추상 클래스를 이용하는 이유와 동일하다. 추상클래스나 인터페이스나 모두 그 자체로는 특별한 기능을 하지 않는다. 하지만 한 가지 프로그램을 여러명이 짤 때 참고하고 쓸 수 있는 가이드의 역할을 한다. 그리고 인터페..
-
추상 클래스 (abstract class)백엔드/자바 2020. 8. 6. 18:50
추상클래스란? 추상 메서드를 가지고 있는 클래스를 말한다. 일반 클래스명 앞에 astract만 붙여주면 추상클래스로서 선언이 가능하다. 아래와 같은 경우 사용할 수 없다. abstract class Animal{ // abstract + class + 클래스명 abstract void bark(); // abstract 메서드 } 아래와 같이 추상 클래스를 상속하면 추상 클래스의 멤버변수와 메서드를 쓸 수 있다. class test2 extends test{ // 추상 클래스 'test'를 상속 받아 선언한 'test2' int test_method(int a){ // 추상 클래스의 추상 메서드 'test_method'를 오버라이딩 return a; } } 추상 클래스와 일반 클래스의 차이 기본적으로 추..
-
추상 메서드 (abstract method)백엔드/자바 2020. 8. 6. 15:39
추상이란? 자바에서 추상이란 구체화와 반대되는 구체적이지 않은 대략적인 미완성을 의미한다. 추상은 abstract라는 제어자를 붙이며 선언할 수 있다. 그리고 추상의 능력을 붙여줄 수 있는 것은 클래스와 메서드이다. 추상 메서드란? 기존의 함수는 아래와 같은 형식을 가진다. ◎ 선언부: '접근제어자 + 반환값 + 메서드명 + 파라미터' ◎ 구현부: 대괄호 ( { } ) 안에 메서드의 실행 코드를 입력 class abstract_test{ // 일반적인 클래스 선언 public int test() { // 어디서나 접근 가능한 정수값을 반환해주는 test 메서드 선언 return 5; // 메서드 실행 결과로 정수 5를 반환 } } 반면 추상 클래스는 다음과 같은 특징을 가진다. ◎ 선언부: '접근제어자 ..
-
상속과 다형성(polymorphism)백엔드/자바 2020. 8. 5. 18:07
다형성이란? 다형성은 객체지향에서의 중요한 특서어 중 하나로 상속과 깊은 관계가 있다. '다형성이란 여러 형태를 가질 수 있는 능력'을 의미한다. 자바는 한 가지 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 설계되었다. 이러한 자바의 다형성을 이용하면 코드를 절약하고 효율적인 프로그래밍이 가능하다. 상속과 다형성 다형성은 상속과 아주 밀접한 관련을 갖는다. 왜냐하면 다형성은 상속할 때 비로소 나타나기 때문이다. 클래스 상속이 일어날 때 중요한 포인트는 하나는 '부모 클래스가 자식 클래스들을 대표'한다는 점이다. 현실에서 미성년자 자녀를 여럿 두고 있는 집안의 법적인 대리인이 부모인 것과 같은 개념이다. 자바상에서는 부모 클래스 타입의 참조 변수로 자식의 인스턴스를 참조할 수 있다는 말과 같은..
-
초기화백엔드/자바 2020. 8. 5. 16:05
변수의 초기화란? 변수의 초기화란 숫자를 0으로 만들어주는 것이 아니다. '변수를 선언하고 처음으로 값을 저장하는 것을 변수의 초기화'라고 한다. 물론 변수에 초기화를 하지 않아도 변수 자체가 기본값을 가지고 있어서 에러가 나진 않는다. 초기화의 필요성 초기화를 통해 값을 지정해주면 더욱 정확한 결과를 얻어낼 수 있다. 변수 초기화는 변수를 선언시 해줄 수도 있고, 당장 변수를 쓰는게 아니면 추후에 해줄 수도 있다. 초기화는 모든 생성자에 공통으로 수행되는 문장이 필요할 때 초기화 블럭에 모아서 한번에 써주면 코드가 간결해진다. 초기화의 종류는 크게 명시적 초기화와 초기화 블럭을 이용한 초기화 두 가지로 나뉜다. 1. 명시적 초기화(explicit initailization) 변수를 선언함과 동시에 초기..