본문 바로가기

프로그래밍

(67)
스트림 ◈ Stream 데이터의 흐름. ◇ 스트림의 구분 1. 입력스트림 → 프로그램 → 출력스트림 2. 문 자 : 문자 스트림 데이터 : 바이트 스트림 IOStream 구분 Node Stream : 외부자원과 연결하는 것이 목적인 스트림 실제 읽고 쓰는 방법은 다양하지 않다. Filter Stream : 읽고 쓰는 것이 목적 외부 자원과 연결 불가 기존의 NodeStream에 추가되어 기존 Stream의 읽고 쓰는 방법을 upgrade 하는 것이 목적 ◇ 연결방법 1. Node Stream으로 외부자원과 연결 2. Filter Stream으로 Filtering (I/O 방법을 풍부하게 만들어 준다.) 3. Filter를 이용해서 Read / Write 실시 4. 연결 Close ◇ 스트림 구분 ▷ Byte I..
Exception Exception (예외상황) 오류 : 프로그램이 정상적으로 수행이 안되는 상황 Throwable 클래스를 상속 받음. (Exception, Error) 1. Error : 심각한 오류. 처리할 수가 없음. 하드웨어적인 오류가 많음. 2. Exception : mild한 오류. 소프트웨어적인 오류. 오류 발생시 처리 가능. → Exception Handling Exception 1. Checked Exception 반드시 처리해줘야 할 Exception을 처리하지 않았을 때, 컴파일 시에 점검해주는 오류. 프로그램 자체의 문제가 아니라, 실행 환경상 발생하는 문제. 프로그램 개발 시 발생 여부 예측 불가능. 반드시 Exception Handling 이 필요. 2. Unchecked Exception 프로..
private 메소드를 하위에서 다시 만들어서 호출 할 때 class Animal{ private void show() { System.out.println("animal"); } } class Human extends Animal{ public void show() { System.out.println("Human"); } } class Test { public static void main(String args[]) { Animal a = new Human(); a.show(); } } compile error : show() has private access in Animal a 객체는 a의 명세를 가지고 메소드를 호출하는 데, a의 명세에서 보면, show는 private이기 때문에 실행 시에는 실제 객체가 생성된 Human show()에 접근하겠지만, ..
자바 String 문자열.. - When are two Strings EQUAL? String 클래스는 자바 개발자에게 있어서 다른 클래스 객체와는 다르게 다뤄진다. 먼저 다음과 같이 new String을 하여 초기화 할 수 있다. String string = new String("The Plming Space"); ← 이러한 방법을 추천하지는 않는다. 혹은 다음과 같이 초기화도 가능하다. String string = "The Plming Space"; 문자열을 비교할 때는 equals 메서드와 혹은 == 동등연산자를 이용해서 비교가 가능하고, 때에 따라서 어떤 경우에 true를 리턴하는지를 확인하는 것이 여기서의 목표이다. 다음의 코드를 확인하면, class Equals { public static void main(String[] args) { Double object1 = new..
Singleton Test 싱글톤 디자인패턴 한 클래스에서 하나의 객체만 만들고자 할 때. 1. 생성자를 private로 만든다. 2. 내부 static 변수로 생성자를 이용해서 객체를 하나 생성한다. 3. public으로 생성된 객체 하나(2번에서 만든 static변수)를 리턴해주는 메소드를 만든다. public class SingletonTest{ public static void main(String[] args){ Company c = Company.getCompany(); Company c1= Company.getCompany(); // Company c2 = new Company(); // 생성자가 private 이므로 외부에서 객체 생성 불가 System.out.println(c); System.out.println(..
키보드 입력받는 방법 패키지 명 java.lang.System (in) java.io.InputStream (read) java.io.BufferedReader (readLine) 메소드 명 in (필드) public static final InputStream in read (메서드) abstract int read() / int read(byte[] b) readLine (메서드) String readLine() 기 능 표준 입력 스트림. / 키보드 입력을 받을 수 있게 해 줌. in은 바이트스트림을 입력받기 때문에 한글을 받을 수 없으며, 한글을 받기 위해서는 바이트스트림을 문자스트림으로 바꾸는 기능을 하는, InputStreamReader 클래스와 사용. 만약, 라인 단위로 문자를 입력받고자 할 때에는 Buffered..
자바 접근제어자 자바의 접근제어자 ◇ 범위 private < default < protected < public ◇ private (-) 해당 클래스 내에서만 사용 ◇ package friendly (class default) 동일 패키지 안에서만 사용 ◇ protected (#) 동일 패키지와 해당 클래스를 상속받은 서브 클래스에서만 사용 가능 ◇ public (+) (interface default) 모든 패키지와 클래스에서 사용 가능. ◇ 메소드 오버라이딩과 접근제어자와의 관계? 메소드 오버라이딩 시에, 상속받아서 구현한 오버라이딩 된 메소드는 상위 클래스의 해당 메소드의 접근제어자와 반드시 같을 필요는 없는지만, 범위가 같거나 넓은 범위로 정해야 한다. ◇ 클래스의 public과 default (클래스는 priv..
클래스 패스 java -classpath classes world.CountryUser 패키지.클래스명 으로 실행. src 위치에서.. CountryUser 클래스가 world 패키지 안에 존재하고 CountryUser 클래스는 world.Asia 패키지 안에 있는 것을 참조할 때.. CountryUser 클래스 자체가 world 패키지 안에 존재하므로, 패키지 명을 통해서 접근해서 실행