프로그래밍/Java

Java 6일차 - Stream(스트림), abstract(추상클래스)

비전공개미 2022. 9. 23. 17:45
반응형
SMALL

476페이지 
Chapter 12 - Stream

1. 스트림(Stream)
스트림이란 프로그램과 I/O객체를 연결하여 데이터를 송수신 하는 길을 말한다.
Stream
ㄴInputStream은 데이터를 읽어 들이는 객체이고, 
ㄴOutputStream은 데이터를 써서 보내는 객체

데이터를 어떤 방식으로 전달하느냐에 따라 스트림은 두가지로 나뉜다.
바이트 스트림(Byte Stream)
 ㄴbinary데이터를 입출력하는 스트림
 ㄴ이미지, 동영상 등을 송수신할 때 주로 사용
 ㄴ바이트스트림은 추상클래스
    ㄴInputStream / OutputStream

문자스트림(Character Stream)
 ㄴ말 그대로 text데이터를 입출력하는데 사용하는 스트림
 ㄴHTML문서, 텍스트파일을 송수신할 때 주로 사용
 ㄴReader / Writer

보조스트림
 ㄴBufferedReader / BufferedWriter  라인 단위의 입출력에 용이
 ㄴInputStreamReader / OutputStreamReader  =>byte기반 스트림을 character기반 스트림처럼 사용

 

 

//Father.java
package net.bit.day23;

//public final class Father -- final을 명시하면 상속을 할 수 없다
public abstract class Father {
	//private이면 Father클래스에서만 사용가능 / Son클래스에서 상속받아도 사용안됨
	//protected접근지정자는 현재클래스, 상속자식 클래스에서도 접근가능
	//public접근지정자는 현재, 상속자식, 외부클래스에서도 접근가능
	//private int pwd = 1234; //부모의 멤버전역변수필드를 자식Son클래스로 접근해서 출력
	protected int pwd = 1234;

	
	public abstract void bank(); 
	//함수모형선언=추상메소드=abstract기술
	//abstract추상메소드가 있으면 추상클래스 public abstract class Father{ }
	//추상클래스를 사용안하면 전혀 문제가 없다.
	//java.util.Calendar = 추상클래스
		
	public void car() { //non-static, 리턴값x, 매개인자x
		System.out.println("아버지car");
	}
	
	public static void main(String[] args) {
		//추상클래스는 자식이 상속받아서 활용해야함
		//Father john = new Father(); //(x)사용불가
		//john.car();
		//추상클래스 = 일반메소드+추상메소드+static메소드
		//interface는 public abstract void bank(); 추상메소드키워드 abstract생략가능
		//추상클래스, interface는 new로 개체생성하면 에러발생
	}
}

 

반응형
LIST