본문 바로가기

IT&코딩

(152)
Java - 18일차 (AWT) ■ AWT의 기본 개념 AWT(Abstract Window Toolkit)는 GUI 프로그래밍을 제작하기 위해 자바에서 제공하는 라이브러리를 모아놓은 것이다. AWT는 모든 GUI 프로그램에 사용되는 컴포넌트 및 툴킷을 제공하고 있으며 향후에는 JFC와 같은 스윙(Swing) 및 Java2D의 모태가 되는 개념이다. AWT는 운영체제에 구해받지 않고 쓸 수 있도록 운영체제의 것을 그대로 사용하지 않고 공통적이고 기본적인 컴포넌트들을 추상화시켜 제공한다. 실행되는 운영체제에 따라 다르게 보이거나 동작 방식에 차이가 있을 수 있다. 이러한 단점을 극복하기 위해 개발된 것이 JFC(Java Foundation Classes)이다. ■ java.awt package 구조 ■ Container 자신의 영역에 컴포..
Java - 17일차 (Java IO - File) 간단한 개요 근원지에서 목적지로 데이터를 보낸다. 데이터를 보내기 위해서는 데이터를 잘게 쪼개야 한다. Data // from ~ to ~ 쪼개는 단위 ByteStream -> InputStream -> OutputStream 문자를 보낼 때에는 CharacterStream : 2byte 단위로 데이터를 보냄. 이를 위해서 Reader / Writer 2개의 클래스를 만들었다. ■ 스트림(Stream)이란? 데이터를 목적지로 입출력하기 위한 방법이다. 스트림에 데이터를 쓸 수 있고, 스트림에서 데이터를 읽을 수 있다. 연결하고자 하는 Device에 따라 다양한 스트림이 존재 ■ 스트림의 특징 Input은 입력만, Output은 출력만 지연(블락킹) CPU와 RAM IO 사이의 속도 차이를 해소하기 위해 ..
Java - 16일차 (Event) - X -
Java - 15일차 (컬렉션과 제네릭) ■ 제네릭 Generics은 컬렉션(자료구조) 즉, 쉽게 말해서 객체들을 저장(수집)하는 구조적인 성격을 보강하기 위해 제공되는 것이다. 간단히 예를 들자면 컵이라는 특정 객체가 있다. 이 컵은 물만 담을 수 있는 컵, 또는 이 컵은 주스만 담을 수 있는 컵. 이렇게 상징적인 것이 바로 Generics다. 1. 제네릭의 필요성 JDK5.0에 와서 Generics가 포함되면서 이제 프로그래머가 특정 컬렉션(자료구조)에 원하는 객체 타입을 명시하여 실행하기 전에 컴파일 단계에서 지정된 객체가 아니면 절대 저장이 불가능하게 할 수 있다. 이전 버전까지는 반드시 실행하여 컬렉션(자료구조)에 있는 자원들을 하나씩 검출하여 확인할 수밖에 없었다. Object로부터 상속받은 객체는 모두 저장이 가능했던 이전의 버전들..
Java - 14일차 (패키지, 예외처리, 단언) ■ 패키지 자바에서 이야기하는 패키지는 서로 관련있는 클래스와 인터페이스를 하나의 단위로 묶는 것을 의미하며, 일종의 Library라고 할 수 있다. 이클립스는 자동으로 컴파일이 되기 때문에 상관없지만 원래 패키지를 컴파일 할 때는 대충 이런 경로를 통해 실행된다. □ 패키지 선언 방법 패키지(package) 선언은 주석문을 제외하고 반드시 소스파일의 첫 줄에 와야 한다. - package 패키지경로명; □ 패키지 사용법 - import [패키지경로.클래스명]; 또는 import [패키지경로.*]; □패키지 컴파일 방법 package mypack.pack; public class MyPackOne { public void one() { System.out.println("MyPackOne클래스의 one메..
Java - 13일차 (알아두면 유용한 클래스) ■ String 클래스 문자열을 의미하는 클래스 가장 많이 쓰이는 클래스 중 하나 정확히 말하면, 객체 자료형이지만 기본 자료형처럼 사용함. 원래 사용하려면 String str = new String();으로 써야 하지만 String str = "abcd";로 그냥 쓰면 된다. □ String 클래스 생성자 □ 객체 생성법 □ 암시적 객체 생성과 명시적 객체 생성의 차이점 1. '==' 연산자는 객체의 주소값 비교 2. 객체의 값 비교는 equals() 메서드를 이용함. package jun.java.exam03; public class StringExOne { public static void main(String[] args) { String s1 = "Twinkle"; String s2 = "Twi..
Java - 12일차 (이너클래스와 열거형) ■ 이너클래스 : 내부클래스 : 중첩클래스 1. 이너클래스의 이해와 특징 특정 클래스 내에 또 다른 클래스가 정의되는 것을 의미한다. 이런 이너 클래스가 필요한 이유는 지금까지 작업해왔던 클래스들과는 다르게 독립적이지는 않지만 하나의 멤버처럼 사용할 수 있는 특징이 있다. 2. 이너클래스를 정의할 때 주의사항이자 장점 이너클래스는 외부 클래스의 모든 멤버들을 마치 자신의 멤버처럼 사용할 수 있다. static 이너 클래스는 제외하고는 다른 이너 클래스는 항상 외부 클래스를 통해야 생성이 가능하다. 외부클래스명$내부클래스명.class로 class 파일이 만들어짐. 3. 이너클래스의 종류 member class는 가장 기본적인 형태이다. static, local class는 member class에서 파생된..
Java - 11일차 (추상클래스와 인터페이스) ■ 추상클래스 1. 추상화의 이해와 선언법 추상화라는 것은 구체적인 개념으로부터 공통된 부분들만 추려내어 일반화 할 수 있도록 하는 것을 의미한다. 다시 말해서 일반적으로 사용할 수 있는 단계가 아닌 아직 미완성적 개념인 것이다. 그럼 자바에서 얘기하는 추상(abstract)화 작업을 하기 위해서는 먼저 추상 메소드를 이해해야 한다. public acstract void abstractMethod(); 위의 내용은 추상 메소드의 구성이다. 구성과 사용 예를 살펴보면 메소드를 정의하면서 brace( { } )를 생략하여 실상 메소드가 하는 일(body)이 없이 semicolon(;)으로 문장의 끝을 나타내었다. 그리고 abstract라는 예약어를 통해 현 메소드가 추상 메소드임을 명시하였다. abstrac..