자바 14

파일 입출력(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 ..

상속 ( Inheritance )

[ 상속 ] 상속은 클래스로부터 멤버변수와 메소드를 그대로 물려받아 상속받은 클래스에서 재사용 한다 라고 말 할수 있다. 이 때 상속받은 클래스는 자식클래스 또는 Sub Class라고 하고, 상속되는 클래스는 부모 클래스 또는 Super Class 라고 한다. 상속개념을 적용하면 코드 재사용성을 높이고 코드의 중복을 줄이며, 관리가 쉽다. 또한 버그를 줄여줄 수 있다. 자바는 상속 받을 수 있는 클래스는 단 하나이다. (즉 단일상속) * 현실세계의 계층구조를 나타내기 위해서 사용한다. * 상속은 의존성이 매우 높은 기법이다 : 부모클래스의 변경으로 인해 자식클래스에서 무슨 오류가 생길지 모르고, 부모 클래스는 자식 클래스를 알지 못함(상속은 매우 조심스럽게 사용해야 한다.) * 상속된 변수와 메소드는 원..

메소드 오버로딩(Method Overloading)

메소드 오버로딩(Method Overloading) 하나의 메소드로 파라미터의 개수, 타입, 파라미터 위치를 고려하여 여러개의 메소드를 만드는 것 메소드 구분 기준 메소드에서 고려해야 할 대상 - 메소드 이름, 파라미터, 파라미터 타입, 파라미터 위치 메소드에서 고려해야 할 대상 - 리턴값은 고려 대상이 아님 - 접근제한자 아래의 코드를 보면 눈으로 보면 알겠지만 다른사람이 사용한다고 생각해봐라 ...... 다 기억하겠는가? -> 바람직하지 않은 방법이다 class Test { public int sum1(int a, int b) { } public int sum2(int a, int b, int c) { } public int sum3(int a, int b, int c, int d) { } } 그래서..

캡슐화(Encapsulation)

캡슐화(Encapsulation) 접근 제한자(Access Modifer)를 사용하여 객체의 멤버변수와 메소드를 하나로 묶고 실제 구현 내용을 감추어 외부에서는 객체가 노출해서 제공하는 멤버변수와 메소드만 이용할 수 있게 하는 것 캡슐화의 목적 1) 접근제한자를 사용하여 객체의 데이터를 외부로부터 보호하기 위함(정보은닉 information hiding) 2) 멤버변수와 메소드를 묶어 개발자는 코드 재사용을 편하게 하려는 것과, 사용자에게 필요한 기능만 제공하기 위함