1. Stream 이란? 2. 바이트 스트림 1. 파일에 데이터 넣기 2. 파일 읽어오기 3. 파일 복사하기 프로그램 3. 문자 스트림 1. Stream 이란? 우선 Stream이라는 단어의 뜻을 살펴보면 시냇물이 흘러가는 느낌의 뜻을 가졌다. 그리고 시냇물은 그 방향이 바뀌지 않는다. 이와 같이 물의 흐름이 한쪽으로만 흐른다는 특징이 있는 것처럼 Stream 역시 한쪽 방향으로만 데이터가 흘러가는 특징을 가졌다. 그림을 보면 App과 HDD 사이에는 Stream이 존재한다. 한쪽 방향으로만 데이터의 흐름이 흘러가기에 두개의 Stream이 필요하다.(input & output) 스트림에는 크게 2가지 종류가 있다. 바이트 스트림과 문자 스트림이다. 각각 이름에서 볼 수 있듯 바이트 스트림은 바이트 단위로..
오늘은 Thread에 대해서 주로 공부할 것이다. 목차 1. Thread 2. Runnable 3. 익명클래스 4. 동기화 5. 스레드의 기능들 1. Thread Thread - 작성된 코드를 실행하는 객체 - 동시에 여러 작업을 하고 싶을 때 쓰는 문법 기본적으로 우리는 프로그래밍의 실행이 한 줄식 차례대로 되는 것으로 배웠다. 그렇다면 만약 파일을 다운로드하면서 음악 재생을 하고 싶을 땐 어떻게 해야 할까? 바로 오늘 배울 Thread를 이용해야 한다. 스레드는 작성된 코드를 실행하는 객체로 동시에 여러 작업을 처리할 수 있다. 이를 왜 쓰냐면 어떤 프로그램을 다운로드하는 것과 동시에 음악을 듣는 상황이라고 가정해 보자. 근데 동시에 처리를 하지 않는다면 다운로드가 다 끝날 때까지 유저는 음악을 들을..
목차 1. Generic 2. Collection AP 1. List 2. Set 3. Map 1. Generic Generic : 멤버의 자료형을 객체 생성할 때 정하는 문법 Generic은 명칭이 정해지지 않은 상품이다. 즉 객체를 생성(new)할 때, 자료형을 입력하는 형태이다. 원래 클래스에 멤버변수를 선언할땐 자료형을 말해줘야 한다. 하지만 위의 사진처럼 작성한 경우 객체를 생성할 때 자료형을 결정할 수 있다. 메인함수로 돌아와서 을 사용해서 자료형을 결정하고 객체를 만들 수 있다. 자료형에는 Random과 같은 객체도 넣을 수 있다.(신기..) 제네릭 문법을 사용할 때 int와 같은 기본 자료형은 사용할 수 없다. 하지만 Wrapper class를 사용하면 기본형 자료형을 이용할 수 있다. 위..
오늘은 객체 지향의 마지막인 다형성에 대해 공부를 해볼 것이다. 다향성을 기준으로 추상클래스, 추상메소드를 배우고 인터페이스까지 알아볼 것이다. 목차 1. 다향성이란?? 1. 업캐스팅(Up casting) 2. 다운캐스팅(Down casting) 3. 배열에 사용해보기 2. 추상(abstract) 1. 추상 클래스 2. 추상 메소드 3. 인터페이스(interface) 1. 다향성이란?? 다형성(polymorphism)이란 부모-자식 상속 관계에 있는 클래스에서 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리이다. 사실 이렇게 정의만 보고 이해하기가 쉽지 않다. 다향성은 객체나 인터페이스 등 철학적인 느낌을 자아내는 용어이기 때문에 실제로 해보면서 이해하는 게 좋다. ..
오늘은 생성자에 대해 공부할 예정이다. 목차 1. 생성자? 2. 사용 이유 3. this() 4. 멤버변수 초기화 4단계 5. Static 6. Inner Class 7. Local Class 사용자 정보를 데이터로 갖는 Person 클래스를 만든다고 생각해 보자. 그럼 당연히 main 함수에는 참조변수를 이용해서 사용해야 한다. 그리고 Person 객체는 클래스가 없으면 만들지 못하는 사용자 정의 객체다. 따라서 위의 사진처럼 클래스를 만들어줘야 한다. 이때 주의할 점이 있다. 멤버변수는 private으로 하는 것이 기본이고 멤버함수는 public으로 하는 것을 권장한다. 멤버변수를 private으로 멤버함수를 public으로 하면 우리는 이제 main 함수에서 멤버변수를 건드릴 수 없다. 그럼 어떻게..
오늘부터 며칠간은 객체 지향 프로그래밍(OOP)에 대해 더 알아보는 시간을 가질 것이다. 그리고 오늘은 class 만들기를 중점으로 공부할 것이다. 목차 1. Class의 위치 1) 별도의 .java 문서에 만들기 2) 하나의 .java 문서 안에 여러 개의 class를 설계하기 3) class안에 또 다른 class 설계하기 4) 함수(메소드)안에 class를 설계하기 2. 패키지(Package) 1) 패키지 만들기 2) 다른 패키지의 클래스 사용하기 3) import 3. 접근제한자 (Access Modifier) 혹시라도 객체 개념이 부족하면 밑의 글을 다시 한번 참고하자. 2023.01.16 - [Android journey/Java] - Java #0 - 객체 (국비 12일 차) Java #0 ..