삶의 늪에 들어 가기 전/정리중(미정리)
2학기 시간표
삶의 늪에 들어 가기 전/정리중(미정리)
2학기 시간표
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제9장 java.lang패키지 - 2.String클래스
2. String클래스 기존의 다른 언어에서는 문자열을 char형의 배열로 다루었으나 자바에서는 문자열을 위한 클래스를 제공한다. 그 것이 바로 String클래스인데, String클래스는 문자열을 저장하고 이를 다루는데 필요한 메서드를 제공한다. 지금까지는 String클래스의 기본적인 몇 가지 기능만 사용해 왔지만, String클래스에는 문자열을 다루는데 유용한 메서드들이 많이 있다. 이제 String클래스에 대해서 자세히 알아보도록 하자. 2.1 String클래스의 특징 String클래스에는 문자열을 저장하기 위해서 문자형 배열 변수(char[]) value를 인스턴스 변수로 정의해놓고 있다. 인스턴스 생성 시 생성자의 매개변수로 입력받는 문자열은 이 인스턴스변수(value)에 문자형 배열(char[]..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제9장 java.lang패키지 - 1.Object클래스
java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그렇기 때문에 java.lang패키지의 클래스들은 import문을 사용하지 않고도 사용할 수 있도록 되어 있다. 그 동안 String클래스나 System클래스를 import문을 사용하지 않고도 사용할 수 있었던 이유가 바로 java.lang패키지에 속한 클래스들이기 때문이었던 것이다. 우선 java.lang패키지의 여러 클래스들 중에서도 자주 사용되는 클래스 몇 가지만을 골라서 학습해보도록 하자. 1. Object클래스 Object클래스에 대해서는 클래스의 상속을 학습할 때 배웠지만, 여기서는 보다 자세히 알아보도록 하자. Object클래스는 모든 클래스의 최고 조상이기 때문에 Object클래스의 멤버들은 모든 클래스에..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제8장 예외처리
8. 예외처리(Exception Handling) 1.1 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생시점에 따라 '컴파일 에러(compile-time error)'와 '런타임 에러(runtime error)'로 나눌 수 있는데, 글자 그대로 '컴파일 에러'는 컴파일 할 때 발생하는 에러이고 프로그램의 실행도중에 발생하는 에러를 '런타임 에러'라고 한다. 컴파일 할 때(compile-time)는 컴파일러가 소스코드(*.java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사를 수행하여 오류가 있는지를 알려 준다. 컴파일러가 알려 준 에러들을 모두 수정해서 ..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제7장 객체지향개념 2 - 7. 인터페이스(Interface)
7. 인터페이스(interface) 7.1 인터페이스란? 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다. 추상클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도'라 할 수 있다. 추상클래스처럼 인터페이스도 완성되지 않은 불완전한 것이기 때문에 그 자체만으로 사용되기 보다는 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다. 7.2 인터페이스의 작성 인터페이스를 작성하는 ..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제7장 객체지향개념 2 - 6. 추상클래스(Abstract class)
6. 추상클래스(Abstract class) 6.1 추상클래스란? 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 미완성 설계도란, 단어의 뜻 그대로 완성되지 못한 체로 남겨진 설계도를 말한다. 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상클래스로는 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서 완성될 수 있다. 추상클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스로서 중요한 의미를 갖는다. 추상클래스는 키워드 'abstract'를 붙이기만 하면 된다. 이렇게 함으..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제7장 객체지향개념 2 - 5. 다형성(Polymorphism)
5. 다형성(Polymorphism) 5.1 다형성이란? 상속과 함께 객체지향개념의 중요한 특징중의 하나인 다형성에 대해서 배워 보도록 하자. 다형성은 상속과 깊은 관계가 있으므로 학습하기에 앞서 상속에 대한 충분히 알고 있어야 한다. 객체지향개념에서의 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 이를 좀더 구체적으로 말하자면, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. 예제를 통해서 보다 자세히 알아보도록 하자. class Tv { boolean power; // 전원상태(on/off) int channel; // 채널 voi..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제7장 객체지향개념 2 - 4. 제어자(modifier)
4. 제어자(Modifier) 4.1 제어자란? 제어자(Modifier)는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 그리고 제어자의 종류는 크게 접근제어자와 그 외의 제어자로 나눌 수 있다. 접근제어자 - public, protected, default, private 그 외 - static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근제어자는 한번에 네 가지 중 하나만 선택해서 사용할 수 있다. 즉, 하나의 대상에 대해서 public과 private을 함께..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제7장 객체지향개념 2 - 3. package와 import
3. package와 import 3.1 패키지(package) 패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함 시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 나누어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 또한 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 지금까지는 단순히 클래스명으로만 클래스를 구분 했지만 클래스의 실제 이름(full name)은 패키지명을 포함한 것이다. 예를 들면, String클래스의 패키지명을 포함한 이름은 java.lang.String이다. 즉, java.lang패키지에 속한 String..
삶의 늪에 들어 가기 전/정리중(미정리)
[Java의 정석]제7장 객체지향개념 2 - 2. 오버라이딩(Overriding)
2. 오버라이딩(Overriding) 2.1 오버라이딩이란? 조상클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손클래스 자신에 맞게 변경해야하는 경우가 많다. 이럴 때 조상의 메서드를 오버라이딩한다. [참고]override의 사전적 의미는 '~위에 덮어쓰다(overwrite).' 또는 '~에 우선하다.'이다. 2차원 좌표계의 한 점을 표현하기 위한 Point클래스가 있을 때, 이를 조상으로 하는 Point3D클래스, 3차원 좌표계의 한 점을 표현하기 위한 클래스를 다음과 같이 새로 작성하였다고 하자. class Point { int x; int y; String getLocation() { return "x :" + x + ", ..