- Escape 문자)
\0 널문자
\b 백스페이스
\t 수평 탭
\n 줄바꿈
\v 수직(탭)
\r 캐리지 리턴
\" 큰 따옴표
\' 작은 따옴표
\\ 역슬래시
- System.out.println(80)은 80이 출력된다. write의 경우는 키값의 단어를 출력하는데 print는 숫자를 문자열로 출력해주는것이다.(묵시적으로 변환)
= System.out.println("80")
-> 바람직한 방법으로는 System.out.printf("%d", 80); 이 있다 f는 format문자를 뜻하는 것이다. 포맷과 값은 분리해 놓는것이 좋다
-> 포맷 문자: printf의 f는 포맷을 해준다는 뜻. 정수의 경우 2,8,16,10 진수등 다양하게 나타낼 수 있기 때문에 그 값과 맞게끔 형식을 맞춰주어야 한다. (f는 다향한 포맷들로 문자들을 바꿔주는 것으로, 즉 문자의 형태를 바꾼다)
지시자 | 설명 |
%b | boolean 형식으로 출력 |
%d | 정수 형식으로 출력 |
%o | 8진수 정수의 형식으로 출력 |
%x 또는 %X | 16진수 정수의 형식으로 출력 |
%f | 소수점 형식으로 출력 |
%c | 문자형식으로 출력 |
%s | 문자열 형식으로 출력 |
| %n | 줄바꿈 기능 |
%e 또는 %E | 지수 표현식의 형식으로 출력 |
-> 실수 포맷시 ex) ("%7.2f", 874.9163)
-> %10d는 숫자 10만큼 문자열 좌측(+)에 공백을 채워 숫자열 길이를 만든다. ex) 123------
:10칸을 미리 예약해 놓고 사용하는 것/ 고정크기를 갖기때문에 문자가 변경되도 틀이 변형되지 않는다
%-10d는 숫자 10만큼 문자열 우측(-)에 공백을 채워 숫자열 길이를 만든다. ex)000000123(좌측에 0을 채우는 것)
%,d는 1000단위로 콤마(,) 처리를 한다.
-> %.2f는 우측에 해당하는 숫자 만큼 소숫점이하 자리를 반올림한다. ex) 123.456f -> 123.46
ex) float avg; System.out.printf("평균 : %5.2f\n", avg);
5는 소수점을 포함해서 5자리의 공간을 확보한다. -> 100.00000이면 5.2일때 100.0만 출력된다. (.)도 합산되는 것이다. 즉, 값을 제한하는 것이 아니고 고정길이를 제한하는 것이다.
-
- out은 모니터 대상인 출력 스트림 객체.
- 파일입출력(I/O 스트림): 데이터를 갖고 있는 소스가 FILE, HDFS, MEMORY, CONSOLE 등이 있는데 모두 출력이 가능하다.
어떤 입출력을 하든지 버퍼를 사용하는데 버퍼 종류(?)가 다를뿐...
ex) FileOutputStream fos = new FileOutputStream("D:\\java\\workspace\\test.txt"); -> 파일입출력이기 때문에 어디로 파일을 보낼것인지 지역을 지정해 주어야 한다. 파일명을 쓸때는 디렉토리를 찾아서 생성을 하는데 이미 존재하는 파일이름이면 덮어써지기 때문에 주의해야한다.
fos.write()->fos.flush() 이후엔 fos.close()를 써줘야 한다. 쓰지 않으면 다음에 실행시 다른 파일이 실행중이라는 에러가 발생한다.
- FileOutputStream 사용시 main함수에 throws IOException을 생성해주고 java.io.FileOutputStream; java.io.IOException; 을 import 해준다.
-> 왜 FileOutputStream fos = new FileOutputStream에서 fos.print는 쓰지 않는가? -> 원래 print에는 stream의 기능이 없다(문자를 여러개 저장하거나 포메팅하는 기능이 x)
-> ex) System.out.= new OutputStream()에서 outputstream에는 print(), println(), printf()의 기능이 없다. 문자열의 기능을 전문으로 하는 애는 System.out.= new PrintStream(new OutputStream());으로 printstream 이 그 기능을 한다. printstream이 정보를 outputstream으로 주고 outputstream은 문자를 쪼개는 기능을 한다. (포장/응용객체-printstream : outputprint를 쓰기 위해 사용하는 것으로 output이 없으면 printstream도 없다. ) System.out에서 out은 PrintStream을 뜻한다.
outputstream은 음식을 만들기 위한 재료를 준비하는 것과 같다. 어떻게 만들것인가에 대한 것은 기능에 달려있다. printstream은 outputstream의 재료(기능)을 이용하는 애임(종속객체를 가지고 있는 객체)
-> 패키지 네임/네임 스페이스: ex) FileOutputStream 는 객체이름.
각자 사람들끼리 클래스 등의 이름을 만들고 서로의 프로젝트를 합칠 때 충돌이 일어날 수 있다. 파일입출력의 개체명을 전 세계적으로 절대 중복되지 않도록 해야한다. 이클립스의 경우 이 패키지? 이름을 java.io.FileOuputStream라고 설정함.
이름이 충돌되지 않게 하려면 ex) a.b.c.fileoutput.. 이런식으로 큰 범위가 맨 왼쪽으로 가는 방향으로 쓴다.
- import 문 자동생성: 마우스 대고 ctrl + shift + o
- 윈도우 운영체제는 파일 구분자로 \\ 역슬래쉬 두개를 사용
-
1. void drawEllipse(int x, int y, int w, int h, int color) {
//
}
->
2. void drawEllipse(Ellipse ellipse) {
//
}
->
3. void draw(Ellipse ellipse) {
// 객체가 중심이되도록 바꿔야한다. 그리다 원 -> 원을 그리다
}
- Board board = new Board();
board.draw(); // 원을 그리다 (객체 지향 추구형식) -> draw()에다가 board를 그려달라는 뜻
draw(board); //그리다 원을 (과거 방식)
- 주석(ctrl + shift + /): 주석은 실행코드에서 사라진다. 범위주석 /**/을 사용하면 코드안에도 사용가능하다.
ex) new FileOutputStream(/*이것은 파일이름*/"D:\\java\\workspace\\test.txt");
-> 문자열 단위로 쓸 이유가 없으면 printstream은 사용하지 않아도 된다.
- 콘솔 입력)
System.in : 키보드로 부터 입력받기위해 stream이 필요하다.
read(), skip() -> 이것을 사용하는 개체의 이름은 system.in으로 정해져있다.
int code = System.in.read(); 사용자가 엔터치면 제어권이 프로그램으로 넘어가 입력된다.
'국비 2019.03.11 > 3월' 카테고리의 다른 글
| 03.18 수업정리 (0) | 2019.03.18 |
|---|---|
| 03.15 과제 (0) | 2019.03.15 |
| 03.14 과제 (0) | 2019.03.14 |
| 03.14 수업정리 (0) | 2019.03.14 |
| 03.13 과제 정리 (0) | 2019.03.13 |