어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

5 장 조건과 반복 ②. Contents Counting and Looping [while 문 사용 ] Powers of 2 [while 문 사용 ] More Guessing [do 문 사용 ] Election Day [do 문 사용 ] Finding Maximum &
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
Vision System Lab, Sang-Hun Han
제 3 장 변수와 자료형.
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
제 1장 C 언어의 소개.
객체지향 프로그래밍.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
7장 배열 ②.
어서와 Java는 처음이지! 제4장 배열.
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
강좌명 : C++프로그래밍 (C++ Programming)
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제7장 제어구조 I – 식과 문장.
명품 JAVA Essential.
Power Java 제4장 자바 프로그래밍 기초.
10장 객체-지향 프로그래밍 II ©창병모.
8장 자바 입출력.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
7 스택.
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
명품 JAVA Essential.
명품 Java Programming.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
DataScience Lab. 박사과정 김희찬 (월)
제 2 장 변수와 상수.
주소록 프로그램.
자바 5.0 프로그래밍.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제1장 서론.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
adopted from KNK C Programming : A Modern Approach
Chapter 2 Lexical Elements, Operators, and the C System
5장 조건과 반복 ②.
제2장 데이터 및 수식.
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
WAP Java Seminar
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
4장 - PHP의 표현식과 흐름 제어-.
[INA470] Java Programming Youn-Hee Han
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
자바 5.0 프로그래밍.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
자바 5.0 프로그래밍.
printf("Global Korea\n");
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Choi Younghwan CSE HUFS
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초

예제 소스

용어 설명 3 3

클래스 클래스(class)는 자바와 같은 객체 지향 언어의 기본적인 빌딩 블록 필요한 클래스를 하나씩 만들어감으로써 전체 프로그램이 완성된다.

클래스의 정의

소스 파일과 클래스 이름 소스 안에 public 클래스가 있다면 반드시 소스 파일의 이름은 public 클래스의 이름과 일치하여야 한다. 하나의 소스 파일 안에 public 클래스가 2개 이상 있으면 컴파일 오류가 발생한다.

메소드 메소드(method)는 특정한 작업을 수행하는 코드의 묶음 메소드는 외부로부터 입력을 받아서 특정한 작업을 수행하고 작업의 결과를 반환하는 블랙 박스

메소드의 정의

자바 프로그램의 구조 하나의 클래스 안에는 여러 개의 메소드가 포함될 수 있다. 하나의 메소드 안에는 여러 개의 문장이 포함될 수 있다.

나는 main() 메소드를 제일 먼저 실행합니다. JVM

문장 사용자가 컴퓨터에게 작업을 지시하는 단위

System.out.print?? java.lang 패키지 12 Java.io 패키지

주석 /* TEXT */ // TEXT /** DOCUMENTATION */ 주석의 시작과 끝을 /*와 */로 표시 //에서 줄의 끝까지가 주석이다. 한 줄짜리 주석만 가능하다. /** DOCUMENTATION */ /**에서 */까지가 주석이 된다

주석을 붙인 소스

LAB: 순차적인 프로그램 작성하기 다음과 같은 출력을 생성하는 프로그램을 작성한다.

SOLUTION

변수 변수(variable)는 데이터를 담아두는 상자

변수의 필요성

변수 선언

자료형 변수에 저장되는 데이터의 타입

자료형의 종류 x myCar

기초 자료형 byte short int long (-263 ~ 263 -1) float double boolean char -128부터 127(-27~27-1) short -32768부터 32767(-215~215-1) 정수타입 int 약 -21억부터 21억까지 (-231 ~ 231 -1 ) long (-263 ~ 263 -1) float (4Bytes -3.4E38 ~ 3.4E38) 실수타입 double (8Bytes, -1.7E308 ~ 1.7E308) 논리타입 boolean true, false char 문자타입 (2Bytes, Unicode)

구현에 독립적임! 특징 기본 데이타 타입의 크기가 정해져 있음 기본 데이타 타입의 크기는 CPU나 운영체제에 따라 변하지 않음

정수형 리터럴 10진수(decimal): 14, 16, 17 8진수(octal): 016, 018, 019 16진수(hexadecimal): 0xe, 0x10, 0x11 2진수(binary): 0b1100 JDK7 2 F 7

long 타입 리터럴은 숫자 뒤에 L 또는 l을 붙인다. 8바이트 모든 정수타입 리터럴은 int형으로 처리 long 타입 리터럴은 숫자 뒤에 L 또는 l을 붙인다. 8바이트 ex) 24L, 3578l

예제: 빛이 1년 동안 가는 거리 빛의 속력(speed of light) : 진공에서 299,792,458m/s

실수타입 리터럴 부동 소수점을 갖는 수를 표시 소수점을 찍은 실수, 지수(exponent)식으로 표현한 실수 27 부동 소수점을 갖는 수를 표시 소수점을 찍은 실수, 지수(exponent)식으로 표현한 실수 12. 또는 12.0 .1234 또는 0.1234 또는 1234E-4 숫자 뒤에 f(float)나 d(double)을 명시적으로 붙여서 표현 0.1234 또는 0.1234D 또는 0.1234d → double 타입 0.1234f 또는 0.1234F → float 타입 1234D 또는 1234d → 1234.0과 같으며 double 타입 1234F 또는 1234f → 1234.0과 같으며 float 타입 실수타입 리터럴은 디폴트로 double 타입 처리

예제: 반지름이 5.0인 원의 면적을 계산하는 프로그램을 작성

문자형 특수 기호는 \로 시작 \u다음에 4자리 16진수, 2 바이트의 유니코드(Unicode) 유니코드 규격 중에서 UTF-16 규격(\u0000~\uffff) 사용 단일 인용부호(’ ’)로 문자 하나 표현 'a', 'W', '가', '*', '3', '7‘ \u다음에 4자리 16진수, 2 바이트의 유니코드(Unicode) ‘\u0041’ -> 문자 'A'의 유니코드(0041) ‘\uae00’ -> 한글문자 '글'의 유니코드(ae00) 특수 기호는 \로 시작 char ch1 = '가'; char ch2 = ‘\uac00'; // '가'를 나타낸다.

특수문자

문자타입 리터럴: 예제

논리타입 리터럴 논리값 표시 true 또는 false 뿐 논리타입과 정수타입 사이의 타입 변환 허용 안 됨 32 논리값 표시 true 또는 false 뿐 논리타입과 정수타입 사이의 타입 변환 허용 안 됨 (i==1) 또는 (i!=0)과 같은 논리연산으로 변경해야 함 int i; if ((boolean)i) {} // 컴파일 에러 boolean a = true; boolean b = 10 > 0; // 10>0가 참이므로 b 값은 true boolean c = 1; // 타입 불일치 오류. C/C++와 달리 자바에서 1,0을 참, 거짓으로 사용 불가 while(true) { // 무한 루프 ... }

논리형

Tip: 기본 데이터 타입 이외 리터럴 null 리터럴 문자열 리터럴 어떠한 레퍼런스 타입의 값으로도 사용 가능 34 null 리터럴 어떠한 레퍼런스 타입의 값으로도 사용 가능 int n = null; // 기본 데이터 타입에는 사용 불가 String str = null; 문자열 리터럴 이중 인용부호로 묶어서 표현 "Good", "Morning", "자바", "3.19", "26", "a" 자바에서 문자열은 객체이므로 기본 타입이 아님 문자열 리터럴은 String 객체로 생성됨

문자열 문자열은 기본 타입이 아님 String 클래스로 문자열 표현 문자열 리터럴 – “JDK”, “한글”, “계속하세요” 35 문자열은 기본 타입이 아님 String 클래스로 문자열 표현 문자열 리터럴 – “JDK”, “한글”, “계속하세요” 문자열이 섞인 + 연산 -> 문자열 연결 String toolName="JDK"; toolName + 1.8 -> "JDK1.8" "(" + 3 + "," + 5 + ")" -> "(3,5)" System.out.println(toolName + "이 출시됨"); // "JDK1.8이 출시됨" 출력

변수 초기화 오류

변수 이름 짓기 식별자는 유니코드 문자와 숫자의 조합으로 만들어진다. 식별자의 첫 문자는 일반적으로 유니코드 문자이어야 한다. _, $로 시작 가능 두 번째 문자부터는 문자, 숫자, _, $ 등이 가능하다. 대문자와 소문자는 구별된다. 식별자의 이름으로 키워드(keyword)를 사용해서는 안 된다.

변수의 이름 변수의 이름은 식별자(identifier)의 일종 변수 이름의 규칙 식별자는 유니코드 문자와 숫자의 조합(한글 가능!) 식별자의 첫 문자는 일반적으로 유니코드 문자 두 번째 문자부터는 문자, 숫자, _, $ 등이 가능하다. 대문자와 소문자는 구별된다. 식별자의 이름으로 키워드(keyword)를 사용해서는 안 된다.

변수 이름의 예

변수 이름 관례

식별자 이름 자신의 이름을 넣을 수 있는 변수명을 정의해 보자. 변수명에 camel case(낙타표기법??) 사용하기 Answer: String myName = "John Q. Public"; http://en.wikipedia.org/wiki/Camelcase CamelCase (also spelled camel case or camel-case) or medial capitals[1] is the practice of writing compound words or phrases in which the elements are joined without spaces, with each element's initial letter capitalized within the compound, and the first letter is either upper or lower case — as in "LaBelle", BackColor, "McDonald's", or "iPod". The name comes from the uppercase "bumps" in the middle of the compound word, suggestive of the humps of a camel. The practice is known by many other names. An early systematic use of medial capitals is the standard notation for chemical formulas, such as NaCl, that has been widely used since the 19th century. In the 1970s, medial capitals became an alternative (and often standard) identifier naming convention for several programming languages. Since the 1980s, following the popularization of computer technology, it has become fashionable in marketing for names of products and companies.

자바 키워드 abstract continue for new switch assert default if package 42 abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while

상수

상수를 만드는 방법

LAB: 지구에서 가장 가까운 별까지의 거리 계산하기

실습 우주선 voyager 1 : 시속 6만 km 걸리는 시간은? 프록시마 센타우리

수식 수식이란 상수나 변수, 함수와 같은 피연산자들과 연산자의 조합

대입 연산자 대입 연산자(=)는 왼쪽 변수에 오른쪽 수식의 값을 계산하여 저장 대입 연산자 == 할당 연산자 == 배정 연산자라고도 한다. x = 100; // 상수 100을 변수 x에 대입한다.

산술 연산자 연산자 기호 의미 예 덧셈 + x와 y를 더한다 x+y 뺄셈 - x에서 y를 뺀다. x-y 곱셈 * 나눗셈 / x를 y로 나눈다. x/y 나머지 % x를 y로 나눌 때의 나머지값 x%y

예제: 윤년 검사 프로그램

중감 연산자

예제: 증감 연산자

관계 연산자

예제: 관계 연산자

논리 연산자

예제: 논리 연산자

형변환 자동적인 형변환 피연산자 중 하나가 double형이면 다른 피연산자도 double형으로 변환된다. 피연산자 중 하나가 float형이면 다른 피연산자도 float형으로 변환된다. 피연산자 중 하나가 long형이면 다른 피연산자도 long형으로 변환된다. 그렇지 않으면 모든 피연산자는 int형으로 변환된다.

강제적인 형변환 Type Coercion

예제: 형변환 1.0 1.25 2

연산자의 우선순위

결합 규칙 동일한 우선 순위의 연산이 있는 경우에 무엇을 먼저 수행하느냐에 대한 규칙

연산자 우선 순위 높음 같은 우선순위의 연산자 왼쪽에서 오른쪽으로 처리 예외)오른쪽에서 왼쪽으로 63 ++(postfix) -- (postfix) +(양수 부호) -(양수, 음수 부호) ++(prefix) --(prefix) ~ ! 형 변환(type casting) * / % +(덧셈) –(뺄셈) << >> >>> < > <= >= instanceof == != &(비트 AND) ^( 비트 XOR) |(비트 OR) &&(논리 AND) ||(논리 OR) ? : (조건) = += -= *= /= %= &= ^= |= <<= >>= >>>= 높음 낮음 같은 우선순위의 연산자 왼쪽에서 오른쪽으로 처리 예외)오른쪽에서 왼쪽으로 대입 연산자, --, ++, +,-(양수 음수 부호), !, 형 변환은 오른쪽에서 왼쪽으로 처리 괄호는 최우선순위 괄호가 다시 괄호를 포함한 경우는 가장 안쪽의 괄호부터 먼저 처리

연산자 우선 순위 (a < b) && (c < d) || (e < f) y = -++ --x; int x = 5; int y = 3; int s = (x>y)?1:-1; // x가 y보다 크기 때문에 1이 s에 대입된다.

LAB: 2차 방정식의 근을 계산 x*x+b*x+c 식의 근을 계산

2차방정식 근 계산 x2-3x+2=0

실습: 2차방정식 근 계산 ax2+bx+c =0 a와 b, c 값을 주고 근을 계산하시오. 2x2-x-1 =0

문자열 자바에서 문자열(string)은 문자들의 모임이다. 예를 들어서 문자열 “Hello”는 H, e, l, l, o 등의 5개의 유니코드 문자로 구성되어 있다. String 클래스가 제공된다. ‘H’ ‘e’ ‘l’ ‘l’ ‘o’

예제: 문자열 프로그램 + 연산자로 문자열을 합칠 수 있다.

문자열 문자열은 기본 타입이 아님 String 클래스로 문자열 표현 문자열 리터럴 – “JDK”, “한글”, “계속하세요” 70 문자열은 기본 타입이 아님 String 클래스로 문자열 표현 문자열 리터럴 – “JDK”, “한글”, “계속하세요” 문자열이 섞인 + 연산 -> 문자열 연결 String toolName="JDK"; toolName + 1.8 -> "JDK1.8" "(" + 3 + "," + 5 + ")" -> "(3,5)" System.out.println(toolName + "이 출시됨"); // "JDK1.8이 출시됨" 출력

사용자로부터 값을 입력받으려면? Scanner 클래스를 사용한다. import java.util.*; // Scanner 클래스 포함 Scanner input = new Scanner(System.in); System.out.print("문장을 입력하시오: "); String line = input.nextLine(); // 한 줄을 읽는다. nextLine() next() nextInt() nextDouble()

import 문장 import java.util.Scanner; // Scanner 클래스 포함 Scanner는 자바 클래스 라이브러리(Java Class Library)의 일종 Scanner는 입력을 받을 때 사용 (Scanner 객체를 생성 후 사용)

Scanner 주요 메소드 73 Scanner a = new Scanner(System.in).useDelimiter("\\s|-"); // 공백 문자나 '-'을 구분자로 사용

예제: 사용자로부터 받은 2개의 정수 더하기

예제 : Scanner를 이용한 키 입력 연습 Scanner를 이용하여 나이, 체중, 신장 데이터를 키보드에서 입력 받아 76 Scanner를 이용하여 나이, 체중, 신장 데이터를 키보드에서 입력 받아 다시 출력하는 프로그램을 작성해보자. import java.util.Scanner; public class ScannerExam { public static void main (String args[]) { Scanner a = new Scanner(System.in); System.out.println("나이, 체중, 신장을 빈칸으로 분리하여 순서대로 입력하세요"); System.out.println("당신의 나이는 " + a.nextInt() + "살입니다."); System.out.println("당신의 체중은 " + a.nextDouble() +"kg입니다."); System.out.println("당신의 신장은 " + a.nextDouble()+ "cm입니다."); } 나이, 체중, 신장을 빈칸으로 분리하여 순서대로 입력하세요 35 75 175 당신의 나이는 35살입니다. 당신의 체중은 75.0kg입니다. 당신의 신장은 175.0cm입니다. 키 입려부분

실수 출력하기 System.out.printf(“%.2f”, value);  소수점 이하 2자리  33.3333  33.33 교과서 p. 94-95 참고

LAB: 원의 면적 계산하기

SOLUTION

LAB: 직사각형의 둘레와 면적 계산하기

SOLUTION 한 줄로 짜 볼것!!!

실습 연도를 입력받아 윤년(leap year)이면 “???년도는 윤년입니다(true)”, 윤년이 아니면 “??? 년도는 윤년입니다(fasle)”를 각각 출력하는 자바 프로그램을 작성하시오.

Q & A