반응형
1. 기본 문법 및 구조
- 클래스와 메소드:
- 자바에서 클래스의 끝에는 세미콜론이 없다. 클래스 정의 시에는 {}로 블록을 묶는다.
- main 함수는 자바 애플리케이션의 시작점으로, 다음 형식으로 작성해야 한다:
- 이 함수는 프로그램이 시작될 때 자동으로 호출되며, String[] args는 실행 시 전달되는 인자(arguments)이다.
-
public static void main(String[] args) { }
- 접근 지정자: 모든 메소드는 접근 지정자를 명시해야 하며, 일반적으로 public, private, protected 중 하나를 사용한다.
- 파일 형식: 자바 소스 파일은 반드시 .java 확장자를 가져야 하며, 클래스 이름과 파일 이름이 동일해야 한다.
- 메소드 호출: 메소드는 클래스 내부에 정의된 함수로, 호출 시 항상 클래스이름.메소드이름() 형태로 사용된다.
2. 데이터 타입 및 형 변환
- 기본 데이터 타입:
- 정수 타입:
- byte: 1바이트 (범위: -128 ~ 127)
- short: 2바이트 (범위: -32,768 ~ 32,767)
- int: 4바이트 (범위: -2,147,483,648 ~ 2,147,483,647)
- long: 8바이트 (범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
- 논리 타입:
- boolean: 1비트 (실제로 1바이트를 차지함) (true 또는 false 값만 가질 수 있다)
- 실수 타입:
- float: 소수점 이하 7자리까지 정확도를 가진 4바이트 실수
- double: 소수점 이하 15자리까지 정확도를 가진 8바이트 실수
- 정수 타입:
- 자동 타입 변환:
- 작은 데이터 타입에서 큰 데이터 타입으로는 자동으로 변환된다.
double d = 3.14 * 10; // 10은 자동으로 10.0으로 변환됨
- 작은 데이터 타입에서 큰 데이터 타입으로는 자동으로 변환된다.
- 강제 타입 변환:
- 큰 데이터 타입에서 작은 데이터 타입으로 변환할 때는 강제 형 변환을 사용해야 한다.
int n = (int) 3.14; // n은 3으로 변환됨
- 큰 데이터 타입에서 작은 데이터 타입으로 변환할 때는 강제 형 변환을 사용해야 한다.
- 문자와 문자열:
- 자바에서 문자열은 String 클래스의 인스턴스이다. 문자열과 다른 타입의 피연산자가 결합될 때, 다른 타입은 문자열로 변환된다.
- 문자열의 특정 문자를 얻기 위해서는 charAt 메소드를 사용한다.
String s = "Hello"; char c = s.charAt(0); // c는 'H'가 됨
3. 연산자 및 흐름 제어
- 후위 연산자:
- 후위 연산자 x--의 경우, 다음과 같은 과정을 거친다:
tmp = x; // 현재 x 값을 tmp에 저장 x--; // x 값을 1 감소
- 따라서 x == x--의 결과는 true가 된다. 이는 tmp와 원래의 x 값을 비교하기 때문이다.
- 후위 연산자 x--의 경우, 다음과 같은 과정을 거친다:
- 논리 연산자:
- || (OR) 연산자는 왼쪽 표현식이 true일 경우 오른쪽 표현식을 평가하지 않는다.
- && (AND) 연산자는 왼쪽 표현식이 false일 경우 오른쪽 표현식을 평가하지 않는다.
- 삼항 연산자:
- 삼항 연산자는 조건부 표현식을 간결하게 작성할 수 있게 해준다.
String result = (a < 0) ? "음수" : (a == 0 ? "0" : "양수");
- 삼항 연산자는 조건부 표현식을 간결하게 작성할 수 있게 해준다.
- 스위치 문:
- switch 문에서는 break 키워드를 사용하지 않으면 다음 case로 넘어가므로 주의해야 한다.
switch (value) { case 1: // some code break; // 필수 case 2: // some code break; // 필수 default: // some code }
- switch 문에서는 break 키워드를 사용하지 않으면 다음 case로 넘어가므로 주의해야 한다.
4. 입력 처리
- Scanner 클래스:
- Scanner 클래스를 사용하여 콘솔에서 입력을 받을 수 있다. 다음은 입력 처리 예시이다:
Scanner scanner = new Scanner(System.in); String name = scanner.next(); // 문자열 입력 int age = scanner.nextInt(); // 정수 입력 double weight = scanner.nextDouble(); // 실수 입력 boolean single = scanner.nextBoolean(); // 불리언 입력
- Scanner 클래스를 사용하여 콘솔에서 입력을 받을 수 있다. 다음은 입력 처리 예시이다:
- 입력 시 공백 처리:
- nextLine() 메소드를 사용하면 입력에서 줄바꿈 문자를 포함한 빈 문자열을 받을 수 있다. 이를 고려하여 입력 처리 시 주의해야 한다.
- 문자 입력:
- 문자를 입력받기 위해 문자열을 사용하여 특정 인덱스의 문자를 추출한다.
String s = scanner.next(); // 문자열 입력 char c = s.charAt(0); // 첫 번째 문자를 추출
- 문자를 입력받기 위해 문자열을 사용하여 특정 인덱스의 문자를 추출한다.
5. 출력 처리
- 문자열 결합:
- System.out.print와 System.out.println을 사용하여 출력을 처리할 수 있다.
System.out.print("독신여부는 " + single + "입니다."); // single 값이 true일 경우 "독신여부는 true입니다."로 출력됨
- System.out.print와 System.out.println을 사용하여 출력을 처리할 수 있다.
- 형식 지정 출력:
- printf를 사용하여 특정 형식으로 출력을 할 수 있다. 예를 들어 16진수 형식으로 출력할 수 있다.
System.out.printf("%04x\n", (short)(a & b)); // 4자리 16진수 형식으로 출력
- printf를 사용하여 특정 형식으로 출력을 할 수 있다. 예를 들어 16진수 형식으로 출력할 수 있다.
이 내용을 바탕으로 Java 프로그래밍 2장에 대한 이해를 돕고 도움이 되기를 바랍니다!
반응형