JAVA: 282개의 글
오버로딩(Overloading) 오버라이딩(Overriding) 자바에서 다형성을 지원하는 방법으로 메소드 오버로딩(Overloading) 오버라이딩(Overriding)이 있다. 오버로딩(Overloading)과 오버라이딩(Overriding) 비슷한 이름이 참 헷갈리게 한다. 오버로딩(Overloading) : 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의 해서 상요한다. 둘이 개념이 다른데도 어떤게 오버로딩(Overloading)이고 오버라이딩(Overriding)이고 뒤돌아서면 헷갈린다. 어쩔 수 있나 머리가 나쁘니.. 헷갈릴 때마다 확인할 수 밖에... 1. 오버로딩 ..
상속(extends), 추상 클래스(abstract), 인터페이스(implement) 객체지향을 조금이라도 공부한 사람들은 상속, 추상 클래스, 인터페이스에 대해 계속적으로 들어봤을 것이다. 이 개념들이 객체 지향 프로그래밍을 하는데 중요한 개념이기 때문이다.이것들은 어플리케이션을 설계하는데 공통된 부분을 묶어 정의해주고, 구조화 해주며, 객체로 활용할 수 있도록 도와준다.이것들에 대한 개념 및 예제들은 많이 찾아볼 수 있으므로, 여기서는 간단히 정리하겠다. 1. 상속 (extends) 상속은 기존의 클래스로 부터 새로운 클래스를 유도하는 과정이다. 쉽게 말해서 부모 클래스를 extends로 상속받아 자식 클래스에서 내 것처럼 사용할 수 있는 것이다. 시스템을 설계하다보면, 공통된 부분으로 인하여 중복되..
StringBuffer 클래스 정리 StringBuffer 클래스는 자바 프로그램 내에서 변하는 문자열을 다룰 때 사용한다. StringBuffer 클래스의 객체는 크기가 동적인데, 객체 생성시 크기를 지정하지 않아도 기본적으로 16개의 문자를 저장할 수 있는 버퍼 공간을 가진다. String 클래스의 객체는 한 번 생성되면 그 내용이 변하지 않는 반면에, StringBuffer 클래스의 객체는 한 번 생성된 후에도 계속하여 저장하고 있는 문자열의 내용을 변경할 수 있다. 그러므로, StringBuffer 클래스의 메소드는 문자열 처리 후의 결과를 원래의 StringBuffer 객체에 반영하고, 메소드 리턴 타입은 void 이다. * StringBuffer 클래스 생성자 StringBuffer 클래스 생..
Object 클래스 정리 1. Java.lang 패키지 java.lang은 자바 프로그램에서 가장 많이 사용되는 패키지로서 자바 프로그램내에 'import' 문을 사용하지 않아도 자동으로 포함된다. 그만큼 자바 프로그램의 기본이 되는 클래스들과 인터페이스들이 포함되어 있다. 다음은 java.lang 패키지의 클래스 구조도이다. 물론 java.lang 패키지에는 더 많은 클래스들이 있다. 더 많은 클래스는 여기서 확인하자. JAVA API DOC : Java.lang Object 클래스는 java.lang 패키지 내의 최상위 클래스이며, String 클래스는 변하지 않는 문자열을 다룰 때, StringBuffer 클래스는 내용이 계속 변하는 문자열을 다룰 때 사용될 수 있다. 2. Object 클래스 ja..
final, static, abstract, synchronized 변수나 함수 선언시, 해당 변수나 함수 활용 방법에 대한 modifier를 설정할 수 있다. modifier 구분설명 final 변수 선언 변수를 상수로 이용하는 경우 사용한다. 함수 선언 오버라이딩이 불가능한 메쏘드를 정의할 때 이용한다.static 변수 선언 클래스에 소속된 클래스 변수를 의미한다. 클래스 생성시 만들어진다. 함수 선언 abstract함수 선언 추상 메쏘드를 의미한다. 하위 클래스에 의해 구현된다. synchronized함수 선언 thread의 동기화를 의한 메쏘드이다. final 은 변수를 선언할 때와 함수를 선언할 때 쓰임새가 다르다. - 상수 : final (변수 선언시) final을 사용하여 변수를 선언하면 할..
접근제어자 public, protected, private 변수나 메쏘드를 선언할 때 접근을 제어할 수 있는 modifier를 설정할 수 있다. 이러한 접근 관련 modifier를 통해서 객체지향 언어의 중요 특성 중 하나인 캡슐화(encapsulation)과 정보 숨김(information hiding)을 구현할 수 있다. * 접근 제어자 구분modifier 설명 접근 권한 public 모든 클래스에서 접근이 가능함을 의미한다.protected 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근이 가능하다. private 클래스 내에서만 접근이 가능하다 * 접근 권한 종류클래스 하위 클래스 동일 패키지 모든 클래스 private O X X X (default) O X O X prote..
Array 배열, 이차 배열, 다중 배열 1. 배열의 선언 Java에서 배열은 객체이다. 배열을 생성학 위해서는 배열을 반드시 선언해야 한다. int[] height = new int[11]; or int height[] = new int[11]; 변수 height 는 정수의 배열(int[])로 선언되었다. height 배열은 height[0] ~ height[10] 까지의 11개의 정수를 저장할 수 있다.정수형 배열의 각 인덱스는 기본적으로 0 으로 초기화 된다. (String 배열은 null 이다)여기서 만약 height[11] 과 같이 배열의 범위를 벗어나면 ArrayIndexOutOfBoundsException이 발생한다. Java 배열의 크기는 length 를 사용하여 확인 할 수 있다. hei..
열거타입 enum Java에서 열거 타입 enum을 정의할 수 있으며, 변수를 선언할 때 변수 타입으로 사용할 수 있다.enum은 그 타입 변수의 모든 가능한 값을 열거함으로써 지정할 수 있다. enum Season {winter, spring, summer, fall} enum에서 나열할 수 있는 값들의 수는 제한이 없다. Season time; 변수 time 은 가질 수 있는 값이 제한되어 Season의 4개 값 중 하나만 가질 수 있다. 그 외의 값을 가지게 되면 컴파일 오류가 발생한다. time = Season.spring; enum은 변수가 가질 수 있는 값의 수가 적을 때 꽤 도움이 된다. 예를 들어 학생이 받을 수 있는 학점을 나타낸다고 가정하면 다음과 같이 enum을 선언할 수 있다. en..
Wrapper class 란? 그리고 AutoBoxing Java는 데이터를 클래스나 객체 외에 (int, double, char 및 boolean과 같은) 기초 타입을 가진다. 따라서 Java에서는 기본형 타입과 객체 참조 같은 두가지 타입의 관리 데이터를 가지게 된다. 예를 들어 데이터를 저장할 때, 기본형 타입의 변수에 저장할 수 있고, 다양한 객체들을 저장할 수 있는 컨테이너 역할을 하는 객체를 생성할 수도 있다. 그러나 어떤 상황에서는 기본형 타입을 객체로 사용해야 하는 경우가 있다. 이러한 경우에 기본형 타입 값을 객체로 포장할 필요가 있다. 포장 클래스(wrapper class)는 특정 기본형 타입을 나타낸다. 예를 들어 Integer 클래스는 간단한 정수 값을 나타낸다. Integer 클래..
DecimalFormat 클래스 NumberFormat 클래스와는 달리, DecimalFormat 클래스는 new 연산자를 사용하여 객체를 생성한다. DecimalFormat 클래스는 format 메소드를 사용하여 특정 패턴으로 값을 포맷할 수 있다. (반환 값 String) 지정할 수 있는 패턴 형식은 '0' 과 '#'을 사용 하여 지정한다. 예를 들어, '0.###', '000.###', '00.#' 등으로 패턴을 지정할 수 잇다. '0' 은 해당 자리수는 값이 최소한으로 있어야 되며, #은 최대한 해당 소수점 자리수 까지(반올림하여) 보여준다. 예를 들어, 78.53981633 일 경우 '0.###' : 78.54 (78.540 이므로 0은 출력되지 않는다.)'000.##' : 078.54 '00...