자바의기본구조 class hellojava{ public static void main(string …smjeong/pdf/java/02.pdf ·...

26

Upload: duonglien

Post on 10-Jul-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

자바의 기본 구조 ?class HelloJava{

public static void main(String argv[]){system.out.println(“hello,Java ~”){

}}

#하나 하나 뜯어 살펴봅시다!

public class HelloJava{

}

public static void main(String[] args){

System.out.println(“Hello Java!!”);

} 메서드 정의

클래스 정의

#시작을 알리는 main !

pubilc : 누구나 접근 가능하도록 하기 위한 예약어

static : 클래스만 존재하면 메서드를 바로 실행할 수 있도록 함

void : 리턴 값이 존재하지 않음

main : 메서드의 이름

String[] args : 메서드에 값을 받아오는 전달 인자

public static void main(String[] args)

+ 의미

설 명

1. 더하기

2. 연결하기

출력을 위한 메서드의 종류메서드 설 명

println(내용) LN은 LiNe의 약자로 내용 출력 후 자동개행

print(내용) 마지막 출력한 문자 뒤에 다음 내용을 출력

printf(“형식지정자”,내용) 형식 지정자에 맞게 내용 출력

@실습 1

코드를 완성하여 다음과 같은 결과를 출력하시오.

각각 변수를 만들어 다음과 같이 완성하시오 이름 : 강호동 국어 : 85 영어 : 73 수학 : 68 총점 : 226점

변수 선언 : 이름, 국어, 영어, 수학, 총점변수

@입력을 위한 Scanner 클래스

# 입력문 사용

# 사용 방법import java.util.Scanner;Scanner s = new Scanner(System.in);s.next();…s.close();

String next()String nextLine()char next().char.At(0)int nextInt()double nextDouble()

import java.util.Scanner;

@문자열을 정수로 변환 : parseInt

@실습 2

코드를 완성하여 다음과 같은 결과를 출력하시오.

//코드를 작성하시오//

class YourAge{public static void main(String args[]){

Scanner input = new Scanner(System.in);//코드를 작성하시오//

System.out.print(“이름 : “);//코드를 작성하시오//

System.out.print(“나이 :”);//코드를 작성하시오//

System.out.println(“당신의 이름은 “+name+”이고, 나이는 “+age + “입니다.”);}

}

@ 식별자 ???클래스 이름, 메서드 이름, 변수 등과 같은 이름

@ 식별자 명명 규칙1. 알파벳, 아라비아 숫자,_(언더바),$ 사용 가능

단, 식별자의 첫 글자는 숫자 사용 불가능2. 예약어는 사용 금지3. 변수 이름의 길이는 제한 없음4. 유니코드 문자도 변수 이름 사용 가능5. 대/소문자 구별

예) name과 NAME는 다른 변수

@자바 자료형의 종류

기본 자료형

논리형

숫자형 정수형

boolean

byte

shortint

long

실수형 float

double

참조 자료형 String, 클래스 , 배열, 인터페이스

문자형 char

# 기본형 : 변수 자체가 값을 가짐# 참조형 : 변수 자체가 값을 가진

영역의 주소만 가짐

@ 정수형

byte (8bits, -128 ~ 127)

short(16bit, -32,768~32,767)

int (32bit, -2³¹ ~ 2³¹ -1 )

long (64bit, -2⁶³ ~ 2⁶³ -1 )

예 ) long la =2147483648L;

@ 논리형boolean(1bit, true / false)예) boolean ox=true;

@ 실수형float (32bits)예) float f_num = 120.123f;

double (64bit)

@ 문자형

char (16bit, 0~65,535)

예) char ca;

ca=‘a’; ca=‘자’; ca=97;

ca=‘\n’; ca=‘\t’; ca=44032;

cf. “a”는 스트링형 상수

System.out.printf(“메시지 or 제어문자”, 변수1, 변수2…) 제어문자

- %s: String(문자열)- %c: char(문자)- %d: int(정수) - %f: double, float(실수)

ex1)System.out.printf("이름 : %s\n", "강호동");System.out.printf("성별 : %c\n", '남');System.out.printf("이름 : %s\n성별 : %c", "강호동",'남');

String name="강호동";System.out.printf("이름 : %s", name)

ex2)double tall=175.3;System.out.printf("신장:%fcm\n", tall);

//신장:175.300000cm

System.out.printf("신장:%10.2fcm\n", tall);//신장: 175.30cm

System.out.printf("신장:%-10.2fcm\n", tall); //신장:175.30 cm

System.out.printf("신장:%.2fcm\n", tall); //신장:175.30cm

@ 변수 ?: 프로그램 수행 중 값을 저장할 수 있는 기억 공간

- 반드시 선언 후 사용

@ 변수 선언- 사용되기 전에 선언.- 데이터형 변수이름;

예) byte b;int age, grade;long la = 2147483648L;double total=384.2;출력 : System.out.println(total);

@형 변환

byte short int long

float

double

char

1. 광역화 형 변환 : 적은 데이터형을 큰 데이터형으로 변환하는 것컴파일러가 자동으로 변환시켜 수행원래 값의 근사치라도 보장

2. 협소화 형 변환 : 큰 데이터형으로 변환할 때cast 연산자 사용(값 앞 괄호안에 변환되는 형)강제적으로 변환 -> 정보를 잃어버릴 수 있음예 : int a = (int) 3.5

@ ASCII코드 ? : 미국 표준 정보 교환 코드: 0~127까지 표현

@ 알고있기!- A(1000001) : 65- a : 97- \n : 13

@ 연산자의 종류

종류 기능 연산자

산 술연산자

사칙연산 + , - , * , / , %

증 감연산자

피연사자의 값 증감 ++ / --

관 계연산자

두 항의 비교 후 참 거짓 판단 => , >= , < , <=, == ,!=

논 리연산자

하나 이상의 항을 평가 후 참 거짓판단

& , && , | , || , ^ , !

비 트연산자

자료를 bit단위로 계산 >> ,<< ,>>> , & , | ,^ , ~

배 정연산자

계산한 결과를 변수에 할당 후 저장

+=, -=, *=, /=, %=, &=, |=, ^=,<<=, >>=, >>>=

3항 조건 연산자 간단한 if_then_else의 경우 (조건식) ? 연산식1 : 연산식 2

두 연산을 논리적으로 처리(True나 False를 반환)

예) a = (10 >=5 && 20 <=25); b = (10 < 10 || 20 == 20);c = (10 != 10);

A BA&B

A&&BA|BA||B

A^B !A

F F F F F T

F T F T T T

T F F T T F

T T T T F F

@ 프로그램 속도를 향상시키는 비트 연산자

- 피 연산자는 반드시 정수형- 연산 결과 = 정수형 !!!!

A B A&B A|B A^B !A

0 0 0 0 0 1

0 1 0 1 1 1

1 0 0 1 1 0

1 1 1 1 0 0

Shift 연산자 : >> , << , >>>

계산 해보기

x = 2 y =15 z = 13 a = 40

1) x = 10 & 7

1010& 0111----------

x = 0010

2) y= 10 | 7

1010| 0111----------

y = 1111

3) z= 10 ^ 7

1010& 0111----------

z = 1101

4) a = 10 <<2

1010101000 <<2

-------------a = 101000

@실습 3

다음 코드에 대한 결과 값은?System.out.println(5%3);System.out.println(5/3);

int a=5;System.out.println(a==5); System.out.println(a>=5); System.out.println(a!=5);

String str="korea";System.out.println(str=="korea" || str=="KOREA");

int score=57;System.out.println(score >= 70 && score<90);

@ 간단한 if_then_else의 경우 사용

예) int num1 = 10, num2 = 20;

a = (num1 > 5? 10 : 20)

b = (num2 > 10? 10 : 20)

구분 연산자 기능 사용 예

조건 ? 값1 : 값2조건이 참이면 값 1

거짓이면 값 2x > 20 ? 30 : 5