7. 함수 그리고 객체와 캡슐
함수 : 기능 (주체를 사용할 수 있는 행위)
컴퓨터 프로그램에서 식 내에 사용함으로써 하나의 값이 정해지는 절차. ex) y=Ax+B
함수는 동사(행위) - 동사는 명사가 없으면 어떤 행위를 할 수 없다.
비동기적인 시스템을 구성해야한다. * 비동기적이려면 버퍼를 사용해야함.
출력 버퍼(단 방향 버퍼 =OutputStream) ex) 일반통행 도로
Stream = 단 방향 버퍼.
출력버퍼 (outputstream)와 같이 한방향으로 가는 것은 단방향 버퍼라 한다.
동기적(Synchronous)
어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다린 후 다음(다른) 작업을 수행하는 방식
(한 가지 일을 순서대로 수행.)
비동기적(Asynchronous)
어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다리지 않고 다른 작업을 하고 있다가,
요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식
(ex.전화)
버퍼(buffer, 문화어: 완충기억기)
데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 버퍼링(buffering)이란 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다. 다른 말로 '큐(Queue)'라고도 표현한다.
보통 데이터는 키보드와 같은 입력 장치로부터 받거나 프린터와 같은 출력 장치로 내보낼 때 버퍼 안에 저장된다. 그러나 버퍼는 컴퓨터 안의 프로세스 사이에서 데이터를 이동시킬 때 사용된다. 이는 전자 통신의 버퍼와 비유할 수 있다. 버퍼는 하드웨어나 소프트웨어에 추가될 수 있지만 버퍼는 상당수가 소프트웨어에 추가된다. 버퍼는 보통 속도가 계속 바뀔 수 있으므로 데이터 수신, 처리 속도에 차이가 있다. (예: 프린터 스풀러)
객체 :
개체에 의미를 부여해 존재하는 것으로 만드는 것.
※ 객체(Object) : 실존 하는 것. / 개체(entity) : 실존하지 않는 것.
자바는 new라는 키워드로 개체화한다.
ex)OutputStream ops = new OutPutStream(); 함수를 개체화 했다면 사용할 수 있다.
함수를 사용하는 방법>
ops.write(문자); ->ops버퍼에 쓰는 작업
ops.flush();->비우는 작업
System.in / System.out 은 기본으로 제공되는 입,출력 도구
new ConsoleOutputStream() ->out 개체화 되어있다.
new ConsoleInputStream() -> in 개체화 되어있다.