자바프로그래밍 29

파일입출력(Data : InputStream, OutputStream)

기존의 파일 입출력에서는 바이트나 문자의 형식을 파일에서 읽어들이거나 쓸 수 있었는데, 자바 내에서 문자열 이지만 숫자로 표현하는 경우 반드시 형 변환을 해서 사용을 해야 하는 단점이 있다. 이러한 단점을 해결한 클래스가 DataInputStream , DataOutputStream 이다. 이 두개의 클래스는 바이트를 문자로 변환하고 primitive type 의 자료형을 읽고 쓸 수 있다. 주의해야 할 것은 문자열을 쓰거나 읽을 때 readLine() 이 아닌 readUTF() 이다. [ DataInputStream ] 더보기 FileInputStream fis = null; DataInputStream dis = null; try { fis = new FileInputStream("data.dat")..

파일 입출력(IO패키지)

[ 파일 ] - 파일과 , 디렉토리(식별자) 를 통 틀어서 파일 이라고 한다. - 경로 구분은 \ 로 하고 시스템 마다 다를 수 있다. - 디스크 상의 존재 여부에 따라 논리적 파일 , 물리적 파일로 나뉜다. - IO 패키지에서 제공하는 File 클래스는 디렉토리를 나타낼 수도 있고 파일도 나타낼 수 있다. - 사용 가능한 메소드는 아래와 같다 .. 더 있으니까 API 문서를 참고 createNewFile , mkdir, mkdirs, delete, lastModified, exists , isFile , isDirectory, getParent, getName 절대경로 , 상대경로 절대경로 : Root로 부터 출발하는 경로 ( C:\Program Files\Java\jdk1.8.0_221 ) getPa..

[JAVA] 예외처리

[ 예외처리 ] - 예외(Exception)가 발생했을 때 어떻게 할 것인지에 대해 명시해 주는 것 - 예외처리 방법에는 2가지가 있다. 하나는 try - catch 를 사용하여 예외상황을 직접 처리하는 것과, throws 를 사용하여 예외처리 책임을 호출한 쪽으로 전가하는 것 [ try - catch - finally ] public static void main(String[] args) { Human man = null try { man.getAge(); // NullPointerException } catch(NullPointerException e) { /* 예외가 발생했을 때 그 예외가 NullPointerException 이라면 어떻게 할 것인지 명시 한다. */ System.out.prin..

[JAVA] 로또 프로그램(컬렉션 사용)

문제 : 자바로 로또 프로그램을 작성하시오. ( 컬렉션을 사용 ) [ 프로그램의 기능 ] 1. 로또 생성 2. 당첨 번호 생성 3. 로또 결과 확인 로또는 1부터 45까지의 랜덤 숫자이며 총 6자리 이다. 당첨번호는 다른 하나의 보너스 번호를 가진다. 로또 등수는 아래와 같다. 1등 6개 일치 2등 5개 + 보너스번호 일치 3등 5개 일치 4등 4개 일치 5등 3개 일치 [ 클래스 구성 ] Lotto.java LottoProgram.java Lotto.java - 6개의 번호를 담을 수 있는 ArrayList 가 존재한다. - 6개의 정수를 담아야 하기 때문에 기본 타입인 int 타입을 객체로 만들어서 ArrayList 에 추가해야 한다. 더보기 import java.util.*; public class..

컬렉션

[ 컬렉션 프레임워크 ] 컬렉션에서의 상위개념 : Collection , Map [ 특징 ] 1. 객체만 사용 가능하다. (참조형) 2. 가변길이 (길이가 고정적이지 않음) 추가, 삭제가 가능하다. 3. 순서가 없다(index 가 존재하지 않는다) 이와 반면에 배열같은 경우는.. 길이가 고정적이다. 따라서 추가나 삭제를 할 수 없다. 하지만 컬렉션을 사용하기 전에 배열을 무조건 1순위로 두고 어떤 일을 처리해야 하며 이것이 불가능한 경우 컬렉션을 사용하도록 해야한다. [ 컬레션의 선언과 정의 ] //1.7 이후 부터 사용 가능 //Collection c = new HashSet(); Collection c = new HashSet(); [ 컬렉션의 기능 ] //길이확인(size) System.out.pr..

Wrapper class

[ Wrapper class ] Java에서 primitive type 데이터와 non-primitive type 데이터, 즉 객체는 근본적으로 다르게 처리된다. Object 타임의 배열에는 다형성의 원리에 의해서 모든 종류의 객체를 저장할 수 있다. 하지만 int, double, char 등의 primitive type 데이터는 저장할 수 없다. 때때로 primitive type 데이터를 객체로 만들어야 할 경우가 있다. 이럴 때 Integer, Double, Character 등의 wrapper class를 이용한다. - 기본 타입의 데이터를 하나의 객체로 포장해주는 클래스 byte -> Byte short -> Short int -> Integer long -> Long float -> Float ..

[ JDK 1.7 ] Interface (인터페이스)

JDK 1.7 버전과 1.8 이후의 인터페이스는 다르기 때문에 1.7 버전을 먼저 정리함 [ 인터페이스 ] - 또 다른 형태의 클래스지만 클래스가 아니다 - 인터페이스는 추상메소드와 상수(static final)을 가질 수 있고 멤버변수는 가질 수 없다. - 접근제한자는 무조건 public 이다. - 객체 생성이 불가능하다. ( 하위클래스가 객체를 생성해야 한다. ) - 아래와 같이 키워드 생략이 가능하다. 그렇다고해서 default 접근제한자가 되는것은 아니다. 또한 메소드도 일반 메소드가 되는것이 아니다. 추상메소드이다 인터페이스를 작성할 때 interface 앞에 인터페이스 명을 선언하면 되는데 관례적으로 클래스는 첫 글자는 대문자로 작성하기 때문에 인터페이스는 I (대문자 아이)를 붙여주는게 관례..

추상 클래스

[ 추상 클래스 ] 추상(abstract) 메서드는 선언만 있고 구현이 없는 메서드이다. 추상 메서드를 포함한 클래스는 추상 클래스라고 한다. 추상 메서드와 추상 클래스는 키워드 abstract 로 표시, 추상 클래스는 객체를 만들 수 없다. 따라서 서브 클래스를 만드는 용도로만 사용된다. 추상 클래스의 특징 - 하위클래스의 구현을 강제할 수 있다. - 하위클래스 들에 대해서 같은 내용을 정의 (일관성 있는 접근 가능) Q. 추상 클래스를 상속받으면 추상 메소드를 구현해야 하는가? 상속받는 클래스가 일반 클래스면 반드시 YES , 또 다른 추상클래스라면 NO // abstract class public abstract class Event { public String title; public Event(..