Download presentation
Presentation is loading. Please wait.
1
Lecture 02 프로그램 구조 및 문법 Kwang-Man Ko
compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018
2
자바 프로그램 기본 구조 Hello 프로그램 구조 sec01/Hello.java
3
자바 프로그램 기본 구조 Hello 프로그램 구조 클래스 : 객체 지향 언어에서 프로그램을 개발하는 단위
메서드 : 수행할 작업을 나열한 코드의 모임 실행문 : 작업을 지시하는 변수 선언, 값 저장, 메서드 호출 등의 코드 주석문 행 주석 : // 범위 주석 : /* */ 문서 주석 : /** */
4
자바 프로그램 기본 구조 Hello 프로그램의 확장 주석 추가 : sec01/Hello2.java
5
식별자 (Identifier) 규칙 문자, 언더바(_), $로 시작 한글도 가능, 영문자 대·소문자를 구분
+, - 등 연산자를 포함하면 안됨 자바 키워드를 사용하면 안됨 길이에 제한이 없음 잘못된 식별자 : %5, a+b, 1b 올바른 식별자 : radius, $a, _int
6
식별자 관례 변수와 메서드는 모두 소문자 단, 복합 단어일 때는 두 번째 단 어부터 단어의 첫 자만 대문자로 표기
단, 복합 단어일 때는 두 번째 단 어부터 단어의 첫 자만 대문자로 표기 클래스와 인터페이스는 첫 자만 대문자로 표기, 나머지는 소문자 로 표기. 단, 복합 단어일 때는 두 번째 단어부터 단어의 첫 자만 대문자로 표기 상수는 전체를 대문자로 표기. 단 , 복합 단어일 때는 단어를 언더 바(_)로 연결
7
데이터 타입 의미 종류
8
데이터 타입 기억 공간 크기 및 기본 값
9
변수 (variable) 의미 프로그램은 기억 공간에 데이터를 보관하고, 각 기억 공간을 변수 Variable로 구분
변수는 데이터를 담는 상자와 같은 것으로 종류가 다양한데, 이를 구분 하려고 데이터 타입을 사용
10
변수 리터럴 프로그램 내부에서 값을 정의해 변수를 초기화, 그 값을 리터럴 정수 실수 가수 지수
11
변수 예제 코드 : sec03/NumberTypeDemo.java 실행 결과
12
변수 문자 논리 예제 코드 sec03/CharBoolDemo.java 실행 결과
13
변수 변수 사용
14
변수 변수 사용
15
변수 상수 (constant) 프로그램 실행 중 변경할 수 없는 데이터를 담는 변수
예, 원주율 값( )이나 빛의 속도(3×108m/s) 등 상수 이름은 변수와 구분하려고 모두 대문자로 표기 반드시 final 키워드로 지정
16
타입 변환 (type conversion)
자동 타입 변환 (implicit type conversion) 강제 타입 변환 (explicit type conversion, casting)
17
타입 변환 연산 중 필요하면 타입 범위가 넓은 방향으로 자동 타입 변환 예
18
타입 변환 예제 코드 : sec03/CastDemo.java 실행 결과
19
입출력 표준 입출력 (standard input/output)
20
기본 입출력 화면에 데이터 출력 사용 예 println() : () 내부의 내용을 출력한 후 행을 바꿈
printf() : 포맷을 지정해서 출력 사용 예 System.out.printf(
21
printf() 형식
22
기본 입출력 예제 sec04/PrintfDemo.java 05 int i = 97; 06 String s = "Java";
double f = 3.14f; System.out.printf("%d\n", i); System.out.printf("%o\n", i); System.out.printf("%x\n", i); System.out.printf("%c\n", i); System.out.printf("%5d\n", i); System.out.printf("%05d\n", i); System.out.printf("%s\n", s); System.out.printf("%5s\n", s); System.out.printf("%-5s\n", s); System.out.printf("%f\n", f); System.out.printf("%e\n", f); System.out.printf("%4.1f\n", f); System.out.printf("%04.1f\n", f); System.out.printf("%-4.1f\n", f);
23
기본 입출력 printf()의 포맷과 실행 결과
24
기본 입출력 키보드로 데이터 입력 Scanner 클래스의 경로 이름을 컴파일러에 알림
import java.util.Scanner; 키보드로 데이터를 입력받으려고 System.in 객체와 연결된 Scanner 객 체를 생성. Scanner in = new Scanner(System.in); Scanner 클래스가 제공하는 다양한 메서드를 이용해 키보드로 데이터 를 입력. int x = in.nextInt(); // 정수를 읽어 변수 x에 대입
25
기본 입출력 키보드로 데이터 입력 Scanner 클래스가 제공하는 데이터 입력 메서드
예제 : sec04/ScannerDemo.java
26
연산자 연산자와 연산식의 의미 JVM은 기본적으로 32비트 단위로 계산
27
연산자 종류
28
연산자 산술 연산자 피연산자의 데이터 타입에 따라 결과 값이 다른데, 연산할 두 피연산자 의 데이터 타입이 다르면 큰 범위의 타입으로 일치시킨 후 연산 수행 논리 타입을 제외한 기초 타입을 피연산자로 사용. 단, % 연산자는 정수 타입만 사용 덧셈 연산자는 문자열을 연결하는 데도 사용. 문자열과 덧셈을 하는 데 이터는 먼저 문자열로 변환한 후 서로 연결 예제 : sec05/ArithmeticDemo.java
29
연산자 비교 연산자 비교 연산자는 논리 타입을 제외한 기초 타입에만 사용할 수 있지만 == 와 !=는 모든 기초 타입에 사용
종류
30
연산자 논리 연산자 논리 연산자는 피연산자의 조건을 결합해서 true와 false를 조사하며, 논 리 타입에만 사용 종류
31
쇼트서킷
32
연산자 논리 연산자 예제 : sec05/CompLogicDemo.java
33
연산자 비트·시프트 연산자 비트 연산자와 시프트 연산자는 정수 타입에만 사용 비트 연산자의 종류 예
34
연산자 비트·시프트 연산자 시프트 연산자의 종류 예
35
연산자 비트·시프트 연산자 예제 : sec05/BitOperatorDemo.java
03 public class BitOperatorDemo { public static void main(String[] args) { System.out.printf("%x\n", 0b0101 & 0b0011); System.out.printf("%x\n", 0b0101 | 0b0011); System.out.printf("%x\n", 0b0101 ^ 0b0011); System.out.printf("%x\n", (byte) ~0b ); System.out.printf("%x\n", 0b0110 >> 2); System.out.printf("%x\n", 0b0110 << 2); 11 int i1 = -10; int i2 = i1 >> 1; int i3 = i1 >>> 1; System.out.printf("%x -> %d\n", i1, i1); System.out.printf("%x -> %d\n", i2, i2); System.out.printf("%x -> %d\n", i3, i3); } 19 }
36
연산자 대입 연산자 오른쪽에 있는 연산식의 결과 값을 왼쪽에 있는 변수에 대입 예
37
연산자 대입 연산자 복합 대입 연산자의 종류 예제 : sec05/AssignmentDemo.java
38
연산자 부호·증감 연산자 숫자를 나타내는 기초 타입에 사용하며 피연산자의 부호를 그대로 유지 하거나 반전
증감 연산자는 변수의 위치에 따라 의미가 다름 종류 예제 : sec05/SignIncrementDemo.java
39
연산자 조건 연산자 조건 연산자 (?: ) 조건식이 true이면 결과 값은 연산식1의 값이 되고 false이면 결과 값 은 연산식2의 값. 조건 연산자도 쇼트서킷 로직을 이용하기 때문에 조건식에 따라 연산식 1과 연산식2 중 하나만 실행 예제 : sec05/TernaryOperator.java
40
연산자 우선순위
41
연산자 결합 규칙 예제 : sec05/OperatorPrecedenceDemo.java true
Similar presentations