반응형
전체 글

전체 글

    [JAVA] 컬렉션 프레임워크( Collection Framework ) - ArrayList, LinkedList, Stack & Queue, Iterator

    1. 컬렉션 프레임워크( Collection Framework ) 컬렉션 프레임워크란 '데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻한다. 컬렉션은 다수의 데이터, 즉 데이터그룹을 의미하고 프레임워크는 표준화된 프로그래밍 방식을 의미한다. 컬렉션 프레임워크는 컬렉션, 다수의 데이터를 다루는 데에 필요한 다양하고 풍부한 클래스들을 제공하기 때문에 프로그래머의 짐을 상당히 덜어주고 있으며, 또한 인터페이스의 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있기 때문에 사용법을 익히기에도 편리하고 재사용성이 높은 코드를 작성할 수 있다는 장점이 있다. 컬렉션 프레임워크의 핵심 인터페이스 컬렉션 프레임워크는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는 데 필요한 기능..

    [JAVA] Object, String, Math, Wrapper 클래스

    1. Object 클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에 Object 클래스 멤버들은 모든 클래스에서 바로 사용이 가능하다. Object 클래스는 멤버변수를 가지고 있지 않고, 단 11개의 메소드만 가지고 있다. toString() 객체에 대한 정보를 문자열로 제공할 목적으로 정의된 메소드 객체의 정보를 제공한다는 것은 대부분의 경우 인스턴스 변수에 값들을 문자열로 표현한다는 뜻이다. equals() 매개변수로 객체를 받아서 비교하여 그 결과를 boolean값으로 리턴하는 메소드 Object 클래스의 equals()는 객체가 가지고 있는 주소 값을 비교한다. 그래서 동위 객체는 무조건 false가 나온다.( 다른 주소 이기 때문에 ) * 동위 객체 : 갖고 있는 값만 같은 객체 ..

    [JAVA] 예외처리( exception handing )

    1. 프로그램 오류 프로그램 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생 시점에 따라 '컴파일에러( compile error )'와 '런타입에러( runtime error )'로 나눌 수 있는데 컴파일에러는 컴파일할 때 발생하는 에러이고 프로그램 실행 중에 발생하는 에러를 런타임에러라고 한다. 컴파일에러 컴파일 시에 발생하는 에러( 주로 문법 ) 런타입에러 실행 시에 발생하는 에러( 배열 범위 벗어남 ) 논리적에러 실행은 되지만 의도와 다르게 동작하는 것 자바에서는 실행 시( runtime ) 발생할 수 있는 프로그램의 오류를 에러( error )와 예외( exception ) 두 가지로 구분..

    [JAVA] 내부클래스( inner class ), 익명클래스( anonymous class )

    1. 내부클래스 내부클래스는 클래스 내에 클래스가 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 내부클래스는 사용빈도가 높지 않으므로 내부 클래스의 기본 원리와 특징을 이해하는 정도만 알아보자. 내부클래스는 클래스 내에 선언된 클래스로서 두 클래스가 서로 긴밀한 관계에 있기 때문에 사용한다. 내부 클래스의 장점은 다음과 같다. 내부클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다. 코드의 복잡성을 줄일 수 있다. 2. 내부클래스의 종류와 특징 내부클래스의 종류는 변수의 선언 위치에 따른 종류와 같다. 내부클래스는 마치 변수를 선언하는 것과 같은 위치에 선언할 수 있으며, 변수의 선언 위치에 따라 인스턴스 변수, 클래스변수, 지역변수로 구분되는 것과 같이 내부클래스도 다음과 같이 구분되어진..

    [JAVA] 인터페이스( interface )

    1. 인터페이스( interface ) 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메소드를 가지지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반메소드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메소드와 상수만을 멤버로 가질 수 있으며 그 외의 다른 어떠한 요소도 허용되지 않는다. 추상클래스를 미완성설계도라고 한다면 인터페이스는 구현된 것이 아무것도 없고 밑그림만 그려져 있는 기본 설계도라고 할 수 있다. 인터페이스도 추상클래스처럼 불완전한 것이기 때문에 그 자체만으로 사용되기 보다는 다른 클래스를 작성하는데 도움을 줄 목적으로 작성된다. 2. 인터페이스 작성 및 상속 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같다. 다만 키워드로 clas..

    [JAVA] 추상클래스( abstract class )

    1. 추상클래스( abstract class ) 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 즉, 완성되지 못한 채로 남겨진 설계도를 말한다. 미완성 설계도로는 완성된 작품을 만들 수 없듯이 추상클래스로 인스턴스를 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다.( 확장 ) 추상클래스는 새로운 클래스를 작성하는 데 있어서 바탕이 되는 클래스로서 중요한 의미를 가진다. 만약, 같은 크기의 Tv라도 기능의 차이에 따라 여러 종류의 모델이 있지만 사실 이들의 설계도는 아마 90% 정도 동일할 것이다. 서로 다른 여러 개의 설계도를 따로 그리는 것보다 이들의 공통부분만을 그린 미완성 설계도를 만들어 놓고 이 미완성 설계도를 이용해서 각각의 설계도..

    [JAVA] 다형성( polymorphism )

    1. 다형성( polymorphism )이란? 객체지향 개념에서 다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. ( 하나의 변수로 다른 타입의 다양한 객체를 참조할 수 있다. ) 좀 더 구체적으로 말하자면 조상클래스 타입의 참조 변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 class Tv { boolean power; int channel; void power() {} void channelUp() {} void channelDown() {} } // 5개 사용 가능​ class CaptionTv extend..

    [JAVA] 제어자( modifier )

    1. 제어자( modifier )란? 제어자란 클래스, 변수 또는 메소드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 public, protected, ( default ), private 그 외 static, final, abstract, transient, synchronized, volatile, strictfp ... 제어자는 클래스나 멤버변수와 메소드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근제어자는 한 번에 4가지 중 하나만 선택해서 사용할 수 있다. 2. static - 클래스, 공통적인 static은 '클래스의' 또는 '공통적인'의 의미를 가지고 ..

    [JAVA] 상속( inheritance ), 오버라이딩( overriding )

    1. 상속( inheritance ) 상속의 정의와 장점 상속이란 기존 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. ==> 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 상속을 구현하기 위해선 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 extends와 함께 써 주기만 하면 된다. 조상클래스 부모( parent )클래스, 상위( super )클래스, 기반( base )클래스 자손클래스 자식( child )클래스, 하위( sub )클래스, 파생된( ..

    [JAVA] 오버로딩( Overloading ), 생성자( Constructor ), 변수의 초기화

    1. 오버로딩( Overloading ) 오버로딩이란? 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것을 '메소드 오버로딩( method overloading )' 또는 '간단한 오버로딩( overloading )이라고 한다. 하나의 메소드 이름으로 여러 기능을 구현하기 위해 사용한다. 오버로딩의 조건 메소드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 메소드의 이름이 같더라도 매개변수가 다르면 서로 구별될 수 있기 때문에 오버로딩이 가능하다. 반환 타입은 오버로딩을 구현하는데 아무런 영향도 주지 않는다. 오버로딩의 장점 하나의 이름을 사용하고 기억하면 되므로 '이 메소드는 이름이 같으니 같은 기능을 하겠구나'라고 쉽게 예측이 가능하다. 메소드 이름을 절약할 수 있다. ==..

반응형