* 주석 한번에 하는 법 : ctrl+shift+c
- 13.1. API vs UI
자바는 프로그램을 쉽게 만들 수 있도록 여러가지 부품을 제공 (ex. system, date, math, printwriter 등등 )
이렇게 자바가 기본적으로 내장하고 있는 기능들 = 라이브러리
라이브러리 부품을 이용해서 나의 프로그램 생성
이 때,
Application(응용) Programming(시간) Interface (API) : 자바가 기본적으로 제공하는 부품들의 조작 방법
User Interface (UI) : 사용자가 우리가 만든 프로그램을 조작하기 위한 조작 장치
- 13.2. 패키지, 클래스, 변수, 메소드
- 자바의 공식 사용설명서 보는 법 : api documentation java 구글링
- 패키지: 서로 연관된 클래스들을 모아 이름을 붙여서 분류해놓은 것
- 클래스: 서로 연관된 변수와 메소드를 모아서 이름을 붙인 것
∴패키지>클래스>변수,메소드
- 13.3. 클래스
public class ClassApp {
public static void main(String[] args) {
System.out.println(Math.PI);
System.out.println(Math.floor(1.6));
System.out.println(Math.ceil(1.6));
}
}
에서
Math. = 클래스 (연관된 변수와 메소드를 모아서 이름 붙인 것)
pi, floor, ceil = 메소드
- 13.4. 인스턴스
printwriter 라는 클래스 이용
얘는 사용법이 math와 다름
math : constructor(생성자)가 없음 (일회용)
printwriter : constructor가 있음 -> 저 constructor를 이용해서 인스턴스를 만드는 것이 허용되어 있다
PrintWriter("저장하고 싶은 파일의 이름");
이 앞에 new를 붙여서 printwriter의 복제본, 아바타를 만듦 (일회용이 아닌 작업을 할 때 효율성을 위해)
그 복제본을 p1이라는 변수에 담음
p1 = new PrintWriter("result1.txt");
저 변수에 담겨있는 것이 printwriter라는 클래스의 인스턴스
그리고 p1에 아무거나 들어가면 안되기 때문에
printwriter를 붙여줌 (p1에는 반드시 printwriter라는 클래스의 인스턴스만 들어간다는 의미)
근데 이렇게 하면 오류 -> 패키지를 가져와야 함 (import)
import java.io.PrintWriter;
(priintwriter가 java.io.라는 패키지에 소속되어 있음)
= 이 파일 내에서 printwriter라는 이름의 클래스는 java.io.라는 패키지에 소속된 것이다.
그래도 오류
왜냐면 예외의 상황(파일이 없을 경우 등)을 어떻게 처리할지를 정해야 하는데
예외에 대해서 공부하기 전까지는
add throws declaration 이용
그리고 실행시킨 후
프로젝트에 대해서 refresh 누르면
result1.txt, result2.txt가 생김
인스턴스로 만들어진 복제품은 각자의 상태를 가질 수 있다.
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
public class InstanceApp {
public static void main(String[] args) throws IOException {
PrintWriter p1 = new PrintWriter("result1.txt");
p1.write("Hello 1");
p1.close();
PrintWriter p2 = new PrintWriter("result2.txt");
p2.write("Hello 2");
p2.close();
}
}
- 13.5. 상속
java.lang.Object
java.io.Writer
java.io.PrintWriter
(PrintWriter라는 클래스는 Writer라는 클래스를 상속받았다 -> writer가 부모, printwriter가 자식)
(Writer라는 클래스는 Object라는 클래스를 상속받았다 -> object가 부모, writer가 자식)
이미 있는 클래스의 변수, 메소드들을 그대로 물려받으면서
거기에 자기가 원하는 변수, 메소드를 추가한 것
Object : 자바의 가장 기본적인 클래스 ( 모든 클래스는 object 클래스는 반드시 상속받음)
Writer extends Object (object를 확장해서(상속받아서) writer를 만듦)
PrinterWriter extends Writer
ex)
toString 이라는 메소드를 쓰고싶을 때 먼저 printwriter -> writer -> object 순으로 찾아서 있으면 반영
write 라는 메소드가 printwriter, writer 에 둘다 있으면 printwriter(하위 클래스)에 있는 걸로 씀 ( override )
'생활코딩' 카테고리의 다른 글
[생활코딩] 14. 나의 앱 만들기 (0) | 2022.08.08 |
---|---|
[생활코딩] 12. 직접 컴파일하고 실행하기 (0) | 2022.08.08 |
[생활코딩] 11. 입력과 출력 (0) | 2022.08.08 |
[생활코딩] 10. 디버거 (0) | 2022.08.08 |
[생활코딩] 9. 프로그래밍 (0) | 2022.08.08 |