- project
- package : 비슷한 역할을 하는 클래스들끼리 분류해서 관리. 폴더같은 개념
- Class : 코드를 작성. 클래스들이 모여 하나의 java aplication 구성
- method : 클래스의 기능(동작)에 해당하는 구현 부분
- variable : 변수. 낙타표기법 준수
📌package
- (default)패키지로 만들면 패키지 선언부 없음
- (default)패키지 안의 클래스는 그 어디에서도 사용될 수 없음
- 즉, 다른 패키지 클래스에서 생성이 불가능하기 때문에 권장하지 않음
패키지는 세 단계 이상으로 만들어주는걸 권장 (ex com.회사명.프로젝트명)
주로 도메인의 역순으로 1, 2레벨을 지정
도메인은 고유한 값이기 때문에 중복을 방지할 수 있고 제작한 곳을 파악할 수 있음
📌main method
- 프로그램 실행시 java.exe에 의해 제일 먼저 실행되는 메소드
- 하나의 java aplication에는 main method를 포함한 클래스가 반드시 하나는 있어야 함
package 선언부
[import 선언부]
Class 작성부
public static void main(String[] args) {
}
📌method
- 같은 클래스에 있는 메소드 호출
package com.sh.first;
public class ClassA{
public void methodA() {
methodB();
}
}
- 다른 클래스, 같은 패키지에 있는 메소드 호출
package com.sh.first;
public class ClassA{
public void methodA() {
ClassB b = new ClassB();
b.methodB();
}
- 다른 클래스, 다른 패키지에 있는 메소드 호출
- import 선언부 사용
package com.sh.first;
import com.sh.second.ClassB;
public class ClassA{
public void methodA() {
ClassB b = new ClassB();
b.methodB();
}
- 풀클래스명 사용
package com.sh.first;
public class ClassA{
public void methodA() {
com.sh.second.ClassB b = new com.sh.second.ClassB();
b.methodB();
}
📌print, println
- print : 출력
- println(new line) : 출력 후 줄바꿈
package 선언부
[import 선언부]
Class 작성부
method 작성부
System.out.print();
System.out.peinrln();
- 한글자(문자) 출력시 '홑따옴표'
- 여러글자(문자열) 출력시 "쌍따옴표"
- 실수값은 컴퓨터 안에서 불안정하기때문에 정확한 답이 나오지 않을 수 있음
- 한글자(문자)는 컴퓨터가 인식하는 고유 숫자값을 가지고 있음
a == 97, b == 98, A == 65
System.out.println(12);
System.out.println(1.2);
System.out.println('가');
System.out.println("가나다라");
System.out.println(12 + 34);
System.out.println(4.3 - 2.1);
System.out.println('a' + 1);
System.out.println(12 + "가나다라"); // "12가나다라"
System.out.println(7 + 7); // 14
System.out.println(7 + "7"); // "77"
System.out.println("7" + 7); // "77"
System.out.println(7 + 7 + "7"); // 14 + "7" // "147"
System.out.println("7" + 7 + 7); // "77" + 7 // "777"
System.out.println("7" + (7 + 7)); // "7" + 14 // "714"
📌printf
변환문자 | 의미 |
---|
%d | 정수(십진수) |
%c | 유니코드문자 |
%b | boolean 값 |
%s | String |
%f | 부동소수점(십진수) |
%e | 부동소수점(과학적 표기) |
%x | 정수(16진수) |
%h | 해시코드(16진수) |
%% | 리터럴'%' |
%o | 8진수 |
%g | 대입 값 그대로 |
%A | 실수(16진수) |
| 응용 |
---|
%5d | 5칸의 공간 확보 후 오른쪽 정렬 |
%-5d | 5칸의 공간 확보 후 왼쪽 정렬 |
%C | 대문자로 보여줌 |
%S | 대문자로 보여줌 |
%.1f | 반올림해서 소수점 아래 첫번째자리 |
- escape 문자
특수문자 | 문자 리터럴 | 비고 |
---|
tab | \t | 정해진 공간만큼 띄어쓰기 |
new line | \n | 출력하고 다음 라인으로 옮김 |
역 슬래시 | \\ | 특수문자 사용시 백슬래시(\)를 넣고 특수문자를 넣어야함 |
작은 따옴표 | \' | 특수문자 사용시 백슬래시(\)를 넣고 특수문자를 넣어야함 |
큰 따옴표 | \" | 특수문자 사용시 백슬래시(\)를 넣고 특수문자를 넣어야함 |
유니코드 | \u | 유니코드를 표시할 때 사용 |
package 선언부
[import 선언부]
Class 작성부
method 작성부
System.out.printf("format"[, 값, 값, ...]);
System.out.printf("%d, %d", num1, num2);
String name = "홍길동";
char gender = '남';
System.out.printf("%s은 %c자", name, gender); // 홍길동은 남자
- 자리의 개수 < 값의 개수 → 자리의 개수만큼만 값이 출력됨
- 자리의 개수 > 값의 개수 → 오류
📌Scanner
- java.util.Scanner 클래스의 메소드를 호출해서 사용자가 키보드로 입력한 값을 읽어들임
- System.in : 값을 읽어들일때 컴퓨터가 이해할 수 있는 byte단위로 읽어들이겠다는 의미
- next()
사용자가 입력한 공백(띄어쓰기) 이전까지의 값을 문자열로 읽어들임
공백을 구분인자로 여김
- nextLine()
사용자가 입력한 모두를 문자열로 읽어들임
- nextInt()
사용자가 입력한 값을 정수값으로 읽어들임
- nextDouble()
사용자가 입력한 값을 실수값으로 읽어들임
작동 원리
- 입력버퍼에 값과 엔터가 들어옴
- nextLine() 외의 메소드는
엔터
를 입력버퍼에서 비워주지 않고 값만 메모리로 옮김
- 메모리로 옮겨진 값은 변수에 대입됨
- nextLine() 외의 메소드는
엔터
를 입력버퍼에서 비워주지 않음
→ 남아있는 엔터
로인해 다음 메소드는 실행과 동시에 이미 입력한것으로 인지하고 읽어들임
→ sc.nextLine();을 기술하여 입력버퍼에 남아있는 엔터
를 지워야함
package 선언부
import java.util.Scanner;
Class 작성부
method 작성부
Scanner sc = new Scanner(System.in);
String str = sc.next();
String str = sc.nextLine();
int num = sc.nextInt();
sc.nextLine();
double d = sc.nextDouble();
📌BufferedReader
package 선언부
import java.util.Scanner;
Class 작성부
method 작성부
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String str = br.readLine();
System.out.println(str);
} catch(IOException e) {
System.out.println("IOException");
}