String 은 변경이 불가능한 문자열의 표현을 위한Class 이지만, StringBuilder와 String Buffer는 변경이가능한 문자열의 표현을 위한 Class 들이다.단 String 인스턴스와 달리 StringBuilder 와 StringBuffer의인트턴스를 가리켜 문자열이라 하지는 않는다 -StringBuilderStringBuilder는 문자열의 저장 및 변경을 위한메모리 공간(버퍼)을 내부에 지니는데,이 메모리 공간은 크기가 자동으로조절 된다는 특징이 있다. 그리고 이 클래스에서가장 중요하게 여겨지는 메소드는 append와 insert인데아래의 소스로 기능을 소개하겠다. 1234567891011121314class test{ public static void main(String[] a..
이번엔 Map인터페이스를 구현하는 방법에 대해 알아 보겠습니다 Map은 굉장히 많이 쓰이는 인터페이스입니다그중 HashMap이 많이 쓰입니다.HashMap은 Map 인터페이스의한 종류로 Key와 Value 값으로 데이터를 저장하는형태를 가집니다. Map 이란 Key와 Value를 하나의 쌍으로 묶어서저장하는 컬렉션 클래스들을 구현하는데 사용됩니다 Map의 종류에는 Hashtable, HashMap, LinkedHashMap,SortedMap, TreeMap 등이 있습니다. 먼저 HashMap 사용을 위해 간단하게 테스트해보겠습니다. HashMap 사용을 위해선 먼저 선언을 해줘야합니다 HashMap hash = new HashMap();를 사용해 선언을 합니다.다음 HashMap에 데이터를 넣어줄땐 Ma..
이번엔 JAVA 의 continue 과 break 에 대해 알아보겠습니다먼저 continue & break 는 반복문 내에 삽입이 되어, 반복문의실행 흐름을 조절하는데 사용되는 키워드입니다.따라서 이 둘을 적절히 사용하면 보다 다양한 형태의 반복문을구성할수 있습니다. 먼저 break문을 사용해 보겠습니다.break문은 반복문을 빠져 나가는 용도로도 사용이 됩니다.보통은 if문과 함께 사용되어서 특정 조건이 만족될 때, 반복문을빠져나가도록 구성합니다. break는 이해와 적용이 어렵지 않은키워드이므로 바로 테스트 해보겠습니다. break문을 사용해서 원하는 값을 찾아낸다음 바로해당 구문을 빠져 나갑니다. 즉 5와 7로 나누어지는35를 찾게되고 search 값이 true 되면서 if문과 자기를감싸고 있는 가..
JAVA는 예외처리를 위해서 try ~ catch문을 제공한다.try는 예외상황이 발생할 만한 영역을 감싸는 용도로 사용 되고catch는 발생한 예외의 처리를 위한 코드를 묶어두기 위한 용도로사용이 된다. 이렇듯 catch 영역에서 예외상황이 처리되기 때문에소스코드상에서 예외상황의 처리를 위한 코드를 아주 쉽게구분할수 있다.간단하게 직접 소스코드 입력후 테스트를 해보자 -- 먼저 19line의 ArithmeticException은 클래스이다.이클래스가 의미하는 예외상황은 0으로 나눗셈을하는 등의 수학적 연산이 불가능한 상황을 의미한다.15line ~ 19line이 try문으로 감싼 곳이다.두개의 정수를 입력받아 try문으로 진입하게 되는데num2이 0이면 나눗셈이 불가능한 상황이다.이때 num2가 나눗셈..
문자열 토큰의 구분 컴퓨터 프로그램상에서는 문자열 데이터의분석이 필요한 상황이 흔히 등장한다.따라서 이러한 경우에 유용하게 사용할 수있는 StringTokenizer 클래스를 알아보자 예를 들어 아래와같은 문자열이존재한다고 생각해보자"08 : 45""11 : 24"이 둘은 시간정보이다. 시 정보와 분 정보는 콜론을 기준으로 나눠져 있다.즉 위의 문자열에서는 콜론이 구분자 이다그리고 구분자를 기준으로 나뉘어 있는문자열 정보를 가리켜 "토큰" 이라 한다 콜론을 기준으로 토큰을 추출하는 프로그램을작성하는 일이 생기면 굉장히 어렵다.하지만 StringTokenizer 클래스를이용한다면 간단한 일이 되버린다.이 클래스의 중심이 되는생성자는 아래와 같다public StringTokenizer(String str, ..
static변수 인스턴스 변수의 선언 앞에 static 선언이 오면 한클래스의 모든인스턴스가 static 변수를 공유한다. 빠른 이해를 위해 소스로 확인해보자 12345678910111213141516171819class Inst{ static int instNum = 0; public Inst() { instNum++; System.out.println("인스턴스 생성 : " + instNum); }} class ClassVar{ public static void main(String[] args) { Inst inst1 = new Inst(); Inst inst2 = new Inst(); Inst inst3 = new Inst(); }}Colored by Color Scriptercs 위 프로그램을 ..
이번 글은 오버라이딩 에대해 알아 보겠습니다 먼저 이전글에서 알아본 오버로딩 과의 차이점을간단하게 알아 보겠습니다 오버로딩은 같은이름으로 함수를재정의 하고오버라이딩은 자식클래스에서부모 클래스의 함수를 재정의 합니다 즉 오버라이딩은 상속받은 메소드를자신의 입맛에 맛도록 같은메소드 이름에 내용만을 재수정 하는겁니다 간단하게 예시를 보겠습니다 먼저 TV 라는 클래스에서 채널과 볼륨을출력한다. 하지만 시간이 지나TV에 시간을 같이 출력해줘야 하는 일이생겼다클래스를 새로 만들어서 채널과 볼륨을 출력하는기능을 다시 만들기엔 시간이 아깝다.그래서 TVX라는 클래스를 만들고TV클래스를 상속받아 원래있던 기능에시간출력을 위한 기능만 재정의 해준것이다즉 부모클래스의 output()메소드를재정의 해준것이다. 하지만 오버라이..
이번 글 은 메소드 오버로딩에 대해알아보겠습니다. 메소드 오버로딩은 대부분의 객체지향 언어가지원하는 문법적인 요소입니다이로 인해서 자바에서는 동일한이름의 메소드를 둘 이상 정의할 수 있습니다. 매개변수의 형(type)이 다르거나 개수가 다르거나 기본적으로 동일한 이름의 메소드는정의가 불가능하다고 생각할 것입니다.하지만 매개변수의 선언형태가 다르면동일한 이름의 메소드를 정의할 수 있습니다. 이를 가리켜 메소드 오버로딩이라고 합니다다음은 메소드가 오버로딩 된 예를 보여드리겠습니다 위의 클래스에는 총 세 개의 Func 메소드가정의되어 있습니다. 이렇게 하나의 클래스 안에세 개의 메소드가 정의될 수 있는 이유는 세 메소드상호간에 매개변수의 자료형, 매개변수 개수가다르기 때문입니다. 그렇다면 이렇게 동일한 이름의..