본문 바로가기

Language60

[Java] 래퍼(wrapper) 클래스 래퍼클래스란 기본형(primitive type)변수를 객체로 다룰 수 있게 한 클래스이다. 기본형 타입을 객체로 다뤄야할 필요가 있을 때 쓰인다. // 예시(Integer) public final class Integer extends Number implements Comparable{ ... private int value; ... } 래퍼 클래스들은 객체생성 시 생성자의 인자로 주어진 각 자료형에 알맞은 값을 내부적으로 저장하고 있고, 관련된 여러 메서드가 정의되어있다. class WrapperEx1 { public static void main(String[] args) { Integer i = new Integer.valueOf(100); // 기존 new Integer(숫자) 는 Depreca.. 2022. 3. 8.
[Java] String, StringBuffer, StringBuilder 클래스 String클래스 String클래스란 String클래스는 문자열을 저장하고 이를 다루는 필요한 메서드를 함께 제공한다. 변경 불가능한(immutable) 클래스 String클래스에는 인스턴스 생성 시 생성자의 매개변수로 입력받는 문자열은 이 인스턴스변수(char[] value)에 문자형 배열로 저장된다. 한번 생성된 String인스턴스가 갖고 있는 문자열은 읽어 올 수만 있고, 변경할 수는 없다. '+'연산자를 이용해 문자열을 결합하는 경우 새로운 String인스턴스가 생성되는 것이다. 즉, 결합할때마다 메모리공간을 차지하게 되므로 이러한 작업을 할때는 StringBuffer클래스를 이용하는 것이 좋다. 문자열의 비교 문자열을 만들 때는 두가지 방법이 있다. 문자열 리터럴을 지정하는 방법 String생성.. 2022. 3. 7.
[Java] Object 클래스 Object클래스란 Object클래스는 모든 클래스의 최고 조상이다. 그래서 Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다. Object클래스의 메서드 메서드 설 명 protected Object clone() 객체 자신의 복사본을 반환 public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다.(같으면 true) protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출. 이 때 수행되어야하는 코드가 있을 때 오버라이딩한다(거의 사용안함) public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class인스턴스를 반환 public int hashCode() 객체 자신.. 2022. 3. 7.
[Java] 예외처리(exception handling), 에러와 예외의 차이 프로그램 오류(에러의 종류, 에러와 예외) 프로그램 실행 중 오작동을 일으키거나 비정상적인 종료가 일어나게 하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 에러를 구분할 수 있다. 컴파일 에러(compile-time error): 컴파일 시에 발생하는 에러 런타임 에러(runtime error): 실행 시에 발생하는 에러 논리적 에러(logical error): 실행은 되지만, 의도와 다르게 동작하는 것 컴파일 에러는 소스코드(*.java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사에서 오류가 있을 때에 발생한다. 컴파일이 잘 수행되고 클래스파일을 생성하여 실행하였다고 해도 프로그램 실행 시에 동작을 멈춘 상태로 오랜 시간 지속되거나, 갑자기 프로그램이 실행을 멈추고 종.. 2022. 3. 6.
[Java] 내부 클래스(inner class),익명 클래스 내부 클래스란? 내부 클래스는 클래스 내에 선언된 클래스이다. 내부 클래스를 쓰는 이유는 두 클래스가 긴밀한 관계기 때문이다. 내부 클래스의 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. - 코드의 복잡성을 줄일 수 있다(캡슐화) class A{ // ... } class B{ // ... } // 내부클래스화 class A{ // 외부클래스 // ... class B{ // 내부 클래스 //... } // ... } 내부 클래스인 B는 외부 클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않는 것이어야 한다. 내부 클래스의 종류와 특징 내부 클래스 특 징 인스턴스 클래스 (instance class) 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스멤버처럼.. 2022. 3. 5.
[Java] 인터페이스(interface) 인터페이스란? 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다. 추상 클래스를 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 있는 '기본 설계도'라고 할 수 있다. 인터페이스의 작성 interface 인터페이스 이름{ public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 인터페이스의 멤버들은 제약사항이 있다. - 모든 멤버변수는 public static final 이어야 하며, 생략할 수 있다. - 모든 메서드는 public abstract 이어야 하며, 생략할 수 있다. (단.. 2022. 3. 4.
[Java] 추상클래스(abstract class) -추상화,구체화 추상클래스란? 추상클래스는 미완성 설계도로 비유할 수 있다. 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다. 추상클래스는 클래스로서의 역할은 다 못하지만, 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스이다. 즉, 새로운 클래스를 작성할때 틀을 제공해준다. 클래스 앞에 'abstract'를 붙이면 추상클래스이다. 이 앞의 'abstract'를 보고 내부에 추상메서드가 있다는 것을 쉽게 알 수 있다. 추상메서드(abstract method) 메서드는 선어부와 구현부로 구성되어 있다. 추상메서드는 선언부만 작성해놓은 것이다. 즉 설계만 하고 실제 수행할 내용은 작성하지 않은 미완성 메서드이다. 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있는 상황에서 쓰인다. /* 주석을 통해 어떤 .. 2022. 3. 4.
[Java] 다형성(polymorphism) - 업캐스팅,다운캐스팅 다형성이란 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다.즉,조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 구현하였다. class Tv{ boolean power; int channel; void power() { power = !power;} void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv{ String text; void caption() { /* ... */ } } CaptionTv c = new CaptionT.. 2022. 3. 4.