클래스
구조public static void main
부터 시작.public class Eunji { // 클래스 생성, 소스코드에 대한 파일 이름: Eunji
public static void main(String[] args) {
System.out.println("Hello");
}
}
// 출력: Hello
(1) 자료형이란?
(2) 유형
유형 | 설명 | 선언 형식 |
---|
| 문자형
(Character) | - 문자 하나를 저장할 때 사용
(1) 변수란?
(2) 변수 유효범위
클래스 블록 안에 선언된 변수
클래스가 시작되면 생성되고, 클래스가 종료되면 소멸됨.
클래스 내에서만 사용 가능.
public class Eunji {
int a = 5; // a -> 클래스 변수.
void fn() {
a = a + 3;
}
public static void main(String[] args) {
Eunji e = new Eunji(); // e.a == 5
e.a = e.a + 5; // e.a == 10
e.fn(); // e.a == 13
System.out.println(e.a);
}
}
// 출력: 13
블록 내에 선언하는 변수.
블록이 시작되는 부분에 선언하고, 중괄호가 닫히는 시점에 소멸.
해당 블록 안에서만 사용 가능.
public class Eunji {
public static void main(String[] args) {
int a = 3; // a -> 지역변수
System.out.println(a)
}
}
// 출력: 3
선언시 static 키워드를 붙여줘야함.
프로그램이 시작되면 변수 생성, 프로그램 종료시 변수 소멸.
프로그램 전체에서 사용 가능.
class Eunji {
static int count = 0;
}
public class EunjiMain {
public static void main(String[] args) {
Eunji e = new Eunji();
e.count ++;
System.out.println(e.count);
e.count ++;
System.out.println(e.count);
}
}
// 출력:
// 1
// 2
(1) 배열이란?
같은 타입
의 변수들로 이루어진 집합.(2) 배열 선언
구분 | 선언 |
---|---|
초깃값 X | 자료형 []배열명 = new 자료형[배열요소개수]; |
ex) int []Eunji = new int[4]; ⇒ index: 0~3 | |
자료형 배열명[] = new 자료형[배열요소개수]; | |
초깃값 0 | 자료형 []배열명 = {초깃값}; |
배열 요소 개수에 정의된 숫자만큼 같은 타입의 데이터 공간이 선언됨.
배열 요소 개수를 명시하지 않고 초깃값이 정의되면, 초깃값 개수만큼 공간 선언.
초깃값 선언 X → 정수: 0, 실수: 0.0, 문자열: NULL 로 저장.
자바에서 배열의 크기를 구할 때 length 속성 사용.
public class Eunji {
public static void main(String[] args) {
int []a = new int[3]; // int형 변수 3개 선언.
System.out.println(a.length);
}
}
// 출력: 3
구분 | 선언 |
---|---|
초깃값 X | 자료형 [][]배열명 = new 자료형[행의_개수][열의_개수]; |
자료형 배열명[][] = new 자료형[행의_개수][열의_개수]; | |
초깃값 0 | 자료형 [][]배열명 = {{초깃값}, {초깃값}, ..}; |
public class Eunji {
public static void main(String[] args) {
int [][]a = new int[3][2]; // int형 변수 3x2개 선언
System.out.println(a.length); // a의 행 개수 출력
System.out.println(a[0].length); // a의 열 개수 출력
}
}
// 출력:
// 3
// 2
public class Eunji {
public static void main(String[] args) {
int [][]a = {{1, 2}, {3}, {4, 5, 6}};
System.out.println(a.length);
System.out.println(a[0].length);
System.out.println(a[1].length);
System.out.println(a[2].length);
}
}
// 출력:
// 3
// 2
// 1
// 3
(1) 표준 출력 함수
함수 | 설명 |
---|---|
System.out.print() | 개행 출력 X |
System.out.println() | 개행 출력0 |
System.out.printf() | C언어처럼 변수를 출력할 수 있음. |
public class Eunji {
public static void main(String[] args) {
int a = 100;
System.out.print("Hello\n"); // Hello 출력 이후, 이스케이프 문자 \n를 만나 개행 실행.
System.out.println("Hello");
System.out.printf("%d", a); // a의 값을 %d(10진수)로 출력.
}
}
// 출력
// Hello
// Hello
// 100
%[-/0][n][.m]지시자
지시자를 제외하고 생략 가능.
n: 출력할 전체 자리수 지정 (오른쪽 정렬)
0: 전체 자리수가 지정된 경우, 왼쪽의 남는 자리에 0 출력
-: 전체 자리수가 지정된 경우 왼쪽 정렬하고 남은공간에 공백 출력.
.m: 소수점 아래 자리수 지정. 잘리는 소수점 자리는 반올림.
지시자 | 설명 |
---|---|
%b | boolean 형식 |
%d | 정수 형식 |
%o | 8진수 정수의 형식 |
%x 또는 %X | 16진수 정수의 형식 |
%f | 소수점 형식 |
%c | 문자 형식 |
%s | 문자열 형식 |
%n | 줄바꿈 기능 |
%e 또는 %E | 지수 표현식의 형식 |
public class Eunji {
public static void main(String[] args) {
int age = 26;
String name = "Eunji";
System.out.print("나이: %d, 이름: %s.%n", age, name);
System.out.printf("자리수 미지정: %d%n", 100);
System.out.printf("자리수 지정: %4d%n", 100);
System.out.printf("자리수 지정(- 사용): %-4d%n", 100);
System.out.rpintf("자리수 지정(0 사용): %04d%n", 100);
}
}
// 출력: (_는 공백을 의미)
// 나이: 26, 이름: Eunji
// 자리수 미지정: 100
// 자리수 지정: _100
// 자리수 지정(- 사용): 100_
// 자리수 지정(0 사용): 0100
(2) 표준 입력 함수
System.in.readLine()
import java.io.BufferedReader; // BufferedReader 사용을 위해
import java.io.InputStreamReader; // InputStreamReader 사용을 위해
import java.io.IOException;
// 입력할 때, 예외 처리를 위해 main 메서드 선언 후, main 메서드 시작 전에throws를 이용한 예외 처리 해줘야함.
public class Eunji {
public static void main(String[] args) {
String a = null;
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
// System.in을 통해 한글자씩 입력 받음.
// InputStreamReader로 문자열로 변형.
// BufferedReader 객체인 r로 결과 받음.
a = r.readLine(); // 엔터를 입력하기 전까지의 입력값들을 a에 저장.
System.out.println(a);
}
}
// 입력:
// Hello
// 출력:
// Hello