Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개

Similar presentations


Presentation on theme: "Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개"— Presentation transcript:

1 Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
자바 프로그램의 기본구조, 자료와 메소드 등 기본요소 설명 자료 정의 : 변수와 자료형, 식별자, 문자열, 배열

2 자바 프로그램의 구성 자바 프로그램은 하나 이상의 클래스로 구성됨
사용자의 명령으로 main() 메소드를 가진 클래스가 실행을 시작 이 클래스의 main() 메소드는 필요시 다른 클래스를 호출 클래스 1 main() 메소드 클래스 : 계좌 클래스 4 클래스 2 변수 : 계좌번호, 잔액 메소드 : 예금인출 클래스 3

3 클래스의 구조 클래스 정의 class Bank // 파일명 : Bank.java { // 외부블럭
클래스 : 가장 간단한 자바 프로그램 아래 Bank 프로그램에는 두 개의 블록이 존재 외부의 블록은 Bank라는 이름을 가진 클래스 블록 내부의 블록은 main()이라는 이름의 메소드 블록 클래스 정의 class Bank // 파일명 : Bank.java { // 외부블럭 public static void main(String args[]) { // 내부블럭 System.out.println(“은행업무 처리”); }

4 클래스의 정의 class Account { 자료 정의 메소드 정의 int balance;
클래스는 자료와 메소드로 정의됨 잔액이라는 의미의 자료(변수) : balance 예금한다는 의미의 메소드(함수) : deposit() class Account { int balance; int deposit(int amount) { balance = balance + amount; return(balance); } 자료 정의 메소드 정의

5 메소드의 정의 int deposit(int amount) { balance = balance + amount;
자료를 처리하는 기능(로직)을 수행 정의된 접근방법을 이용하여 메소드를 호출하고 처리결과를 반환받음 메소드의 접근방법은 메소드의 이름과 매개변수, 그리고 반환값 유형으로 정의됨 매개변수 : 메소드에서 처리할 자료의 유형과 변수명칭 복귀유형 : 메소드가 처리된 후 호출함수에 넘겨줄 자료의 유형 반환값 유형 메소드 이름 매개변수 메소드 정의 int deposit(int amount) { balance = balance + amount; return(balance); } 반환자료

6 main() 메소드 public static void main(String args[]) { Account account;
객체지향 프로그램을 시작시키는 특별한 메소드 최초로 실행되는 메소드이자 또한 마지막으로 처리를 종결하는 메소드 다른 클래스를 호출하여 부속된 기능을 처리 한정자(Modifier) 클래스, 변수 또는 메소드의 선언에 함께 사용되어 부가적인 의미를 부여 접근 한정자 : 접근을 통제하는 역할을 지정(private, public, protected) 기타 한정자 : 또다른 부가적인 의미를 지정(static, final, abstract 등) 한정자 한정자 반환값유형 메소드 이름 매개변수 메소드 정의 public static void main(String args[]) { Account account; account = new Account(); account.balance = 5000; account.deposit(5000); System.out.println(“Balance = “ + account.balance);}

7 자료의 정의 컴퓨터 메모리의 할당 i int i; i i = 50;
자료가 정의되면 자료유형에 따라 필요한 공간이 메모리에 할당됨 이후에 연산에 의해 배정되는 값은 이 메모리에 저장됨 정수형 변수의 정의 정수를 위한 4바이트 메모리 할당 지정된 값(예: 50)을 메모리에 수록 컴퓨터 메모리의 할당 i int i; i = 50; i 50

8 자료의 정의 객체의 생성 컴퓨터 메모리의 할당 account Account account;
클래스의 멤버변수에 값을 할당하는 절차 클래스로부터 생성될 객체이름을 선언한다. 클래스로부터 객체를 생성하고 주소 값을 부여한다. 객체 내의 멤버변수에 임의의 값을 할당한다. 객체의 생성 컴퓨터 메모리의 할당 객체참조변수 클래스 이름 account account 객체 Account account; account = new Account(); account.balance = 5000; account ID 0XBACC balance 5000 8

9 기본 문법 (주석) 자바의 3가지 comment 기술 방법 // 코멘트 … 한 line의 comment /* 코멘트 … */
/** 코멘트 … */ 자동적인 문서화를 위한 comment 이 주석은 “javadoc” 명령에 의해 사용됨

10 Semicolon, Block, White Space 문자
balance = balance + amount; Block은 중괄호 내에 포함된 문장들의 집합 { int sum = 0; for (int n = 0; n < 10; n++) sum = sum + n; } White Space 문자 blank(‘\b’), tab(‘\t’), newline(‘\n’)을 사용할 수 있음

11 식별자(Identifier) 변수나 클래스, 메소드의 이름 첫 문자는 영문자와 특수문자(_ 또는 $)로 시작
자바의 예약어를 식별자로 사용하지 않도록 유의해야 함 대소문자가 구별되고 최대길이에 제한 없음 예 : identifier _username sys_var1 $change

12 예약어(Reserved Word) 자바언어가 고유하게 관리하는 단어 => 미리 용도를 지정
class, int, static for, do, while return 등 예약어는 지정된 용도 외에 다른 목적으로 사용할 수 없음 변수명이나 객체참조변수의 명칭으로 사용불가

13 변수와 자료형 변수(Variable) 자료를 저장하기 위해 특정한 메모리 영역을 할당하고 이 영역에 붙인 이름
특정한 메모리에 값을 저장하기 위해서는 먼저 변수의 선언이 필요 예 : int number; 자료형 기본 자료형(primitive type) 정수, 실수, 문자 등 기본적인 자료의 유형 기본 자료형 변수는 직접 연산에 필요한 값을 저장 참조 자료형(reference type) 배열, 문자열, 클래스(객체) 등과 같은 자료의 유형 이때의 자료는 단순한 자료가 아니라 자료의 set 자료의 저장소에 대한 주소값(참조값)을 가짐

14 상수 상수(Constants) 프로그램의 수행 중에 값의 변화가 없는 것 상수의 예
예 : int n = 5; // 5 : 정수 상수 예 : char c = ‘c’; // ‘c’ : 문자 상수 예 : String s = “string”; // “string” : 문자열 상수 예 : boolean flag = true; // true : 불리언(boolean) 상수

15 기본 자료형 구분 자료 유형 설 명 키워드 값의 범위 최소값 최대값 숫자형 정수 형 byte 8 bit -128 127
short 16 bit 정수 -32768 32767 integer 32 bit 정수 int -231 231-1 long 64 bit 정수 -263 263-1 실수 float 32 bit 실수 double 63 bit 실수 문자형 character 문자 데이터 char 16비트 유니코드 논리형 boolean true, false

16 문자열(String) 기본 자료형이 아니라 클래스임 단순한 문자들의 모임이 아니고, 자료와 메소드를 갖는 클래스임
지정하고자 하는 문자열과 이 문자열을 다루는 메소드로 구성됨 사용 예 String str1 = “Welcome to ”; String str2 = “New World”; String str3 = str1 + str2; System.out.println(str3); // Welcome to New World 출력

17 형 변환(Casting) 형 변환 특정한 자료 유형을 다른 자료 유형으로 바꾸는 것 형 변환은 객체참조변수에서도 발생
상속 클래스의 경우 : 부모 클래스의 자료를 자식 클래스의 자료로 형 변환 변환 예 1 int i; float f; f = i + f; i와 f는 연산을 위해 정수형 i가 실수형으로 자동 변환되어 덧셈 연산을 수행 변환 예 2 int a; byte b; b = (byte)a; 4바이트의 a는 1바이트로 축소되어 b에 저장됨

18 자바의 코딩규약 코딩규약은 자바의 프로그래밍을 표준화시킴 작성된 프로그램을 이해하기가 용이함 클래스와 인터페이스 명칭
첫 문자는 대문자이며, 중간에 있는 단어의 첫 문자도 대문자를 사용 예 : class AccountBook, class ComplexVariable, interface Account 메소드명 통상 첫 자는 소문자, 중간에 나타나는 단어의 첫 자는 대문자 예 : balanceAccount(), addComplex() 변수명 첫 문자는 소문자이며 단어의 첫문자는 대문자를 사용 예: currentCustomer 상수명 상수명을 구성하는 모든 문자는 통상 대문자로 정의 예: HEAD_COUNT, MAXIMUM_SIZE

19 연산자의 유형 연산자(operator)와 더불어 몇 개의 항(operand)이 있는가에 따른 분류 단항 연산자 : 1개의 항
이항 연산자: 2개의 항 operand operator operand 예 : n - t; 삼항 연산자: 1개의 표현식과 2개의 항 expression ? operand : operand 예 : flag = count > 0 ? 0 : 1

20 연산자의 종류 종 류 기 능 연산자 주요 연산자 산 술 사칙연산 +, - *, /, %, ++, -- 관 계
산 술 사칙연산 +, - *, /, %, ++, -- 관 계 두 항의 비교 후 참과 거짓을 판단 >, >=, <, <=, ==, !=, instanceOf 논 리 하나 이상의 항을 평가하여 참과 거짓을 판단 &, |(비트연산) &&, ||(불리언 값의 논리연산) !(반대, 불리언 연산) 비 트 자료를 bit 단위로 계산 >>, <<, >>>, &, |, ^(bit not), ~(bit XOR) 배 정 계산한 결과를 변수에 할당(=)하여 저장 +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=

21 연산자의 사용(1/3) 나눗셈 연산자 j = 7 / 3; // j에는 몫 2가 저장됨
n = 7 % 3; // n에는 나머지 1이 저장됨 단항 연산자 if(++i > 3) // i의 값을 먼저 증가한 후 3과 비교하라 if(i-- > 3) // i의 값을 3과 비교한 후 i의 값을 하나 감소시켜라 관계 연산자 if(i> j) // i의 값이 j의 값 보다 크면 if(j <= n) // j의 값이 n의 값 보다 작거나 같으면 if(n == 10) // n의 값이 10과 같으면 if(n != 8) // n의 값이 8과 같지 않으면

22 연산자의 사용(2/3) 논리 연산자 AND 연산 byte a = 5; // 0000 0101 (5의 2진수 값)
byte b = 4; // (4의 2진수 값) byte c = a & b; // (4 : 5와 4의 비트 AND 결과) OR 연산 byte a = 5; // (5의 2진수 값) byte b = 4; // (4의 2진수 값) byte c = a | b; // (5 : 5와 4의 비트 OR 결과) 부울 OR 연산 boolean t = true; boolean f = false; boolean x = t || f; // x : true, t와 f가 다른 값일 때 결과는 true NOT 연산 boolean x = !t; // x : false, true의 반대 값(NOT)

23 연산자의 사용(3/3) 비트 연산자 byte a = 3; // 0000 0011 (3의 2진수 값)
byte b = a << 2; // (12), a의 값이 좌측으로 2비트 만큼 // 이동 배정 연산자 byte a = 3; // a에 3을 배정 a <<= 2; // a = a << 2

24 연산자의 우선순위 y = (a + b) - ++c * d 각각의 연산자는 서로 다른 결합력을 가짐
연산자의 결합력에 따라 순서적으로 연산이 수행됨 괄호나 가감승제는 일반적인 산술연산 순위와 동일 괄호 먼저, 연산은 덧셈/뺄셈보다 곱셈/나눗셈을 먼저 이외에도 단항연산자나 논리연산자가 갖는 우선순위가 연산에 반영됨 y = (a + b) - ++c * d (1) (2) (3) (4)

25 배열 같은 유형의 자료를 여러 개 저장하여 처리할 때 사용하는 자료 구조 예 : 여러 정수를 저장하기 위한 저장소
배열의 선언 및 생성 선언 : int[] ia; 또는 int ia[]; 생성 : ia = new int[3]; 1차원 또는 2차원 이상의 다차원 배열구조를 가질 수 있음 ia ia[0] 주소 ia[1] ia[2] 1차원 배열 ia[5] ia[0] ia[1] ia[2] ia[3] ia[4] 2차원 배열 ib[4][5] [0][0] [0][1] [0][2] [0][3] [0][4] [1][0] [1][1] [1][2] [1][3] [1][4] [2][0] [2][1] [2][2] [2][3] [2][4] [3][0] [3][1] [3][2] [3][3] [3][4]

26 위밍업 문제 진위형 문제 풀기 단답형 문제 풀기

27 실습문제 - 기초 2.1 연산처리 프로그램 : javaBasic1.java
교재에 제시된 프로그램을 해석하고, (1) ~ (10)의 출력결과를 적으시오. 이 프로그램을 코딩하고 실행시키시오. 이상의 2가지 결과를 비교하시오.

28 실습문제 - 기초 2.2 연산처리 프로그램 : javaBasic2.java
교재에 제시된 프로그램을 해석하고, (1) ~ (10)의 출력결과를 적으시오. 이 프로그램을 코딩하고 실행시키시오. 이상의 2가지 결과를 비교하시오.


Download ppt "Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개"

Similar presentations


Ads by Google