Java 기초 1
E N D
Presentation Transcript
Java?언어?란 - - - 1995년에?제임스?고슬링이?발표 현재는?Oracle?소유 객체지향?방법론을?추구하는?프로그래밍?언어
Java?언어의?특징 - - - - - 객체지향언어 Java?Virtual?Machine?위에서?실행?-->?Platform?Independent JRE,?JDK 컴파일?하면?Java?Byte?Code가?생성?됨 Garbage?Collecting
Java?언어의?장단점 - 장점 - - - - 단점 - - 활용도가?높음?-?앱,?웹,?임베디드?모두?적용 취업?기회?높음?-?특히?한국에서 끊임없이?진화?하는?중 - 코드가?장황?함?-?boilerplate?코드가?많음 새로운?패러다임을?빠르게?받아?들이지?못하고?있음?-?기존?레거시의?한계
Java?언어의?현황 - - - - - 2018년?TIOBE?인덱스?기준?Top?1 미국?Indeed?기준으로도?상위권 Spring도?계속해서?진화?중이기?때문에?Java의?인기는?한동안?지속?될?듯 구글의?Java?배척이?관건 Kotlin이?Java를?대체?할?수?있을지?관건
Java?언어의?현황 - - - - 현재?버전?8이?가장?많이?사용?됨 최신?버전은?10 계속?되는?성능?향상 모던?프로그래밍?패러다임?도입?시도?중
Java?설치 - - Mac?은?기본?설치?되어?있음 Terminal?에서?‘java?-version’?으로?버전?확인
IDE?for?Java - Eclipse - - - - IntelliJ - - - - 무료 가장?많이?쓰이는?Java?IDE 무겁다 - JetBrain은?IDE?계의?apple?같은?존재 성능,?인터페이스?모두?훌륭 비싸다 학생은?1년?무료?사용가능.?그외?다른?프로모션도?제공
Hello?World?출력 - - - - - Eclipse?실행 새?자바?프로젝트?생성 Hello?World?클래스?생성 main?메소드?생성 Hello?World?출력
Hello?World?출력 - - - Java의?기초?단위는?클래스 Java?File?명과?클래스?명은?동일해야?함 Java?애플리케이션의?시작?지점은?main?메소드
변수 - - - - 데이터를?담는?그릇 Java의?변수에는?타입이?존재 총?8개의?원시?타입?존재 Naming?Rule - 대소문자를?구분 - 변수의?이름은?숫자로?시작할?수?없음 - $?과?_?이외의?특수문자는?사용할?수?없음 - 키워드?(지정된?예약어)는?변수의?이름으로?사용할?수?없음
데이터?타입 크게?원시타입(Primitive?type)과?참조타입(Reference?type)이?존재 - - - 원시타입 - - - - - 주요?참조타입 - 참조타입은?객체?타입의?데이터?타입 - 문자열:?String - 정수:?Integer,?long - 실수:?Double - 참/거짓:?Boolean 정수:?byte,?short,?int,?long 실수:?float,?double 문자:?char 참/거짓:?boolean -
데이터?형변환 - Up?Casting - 작은?데이터?타입을?큰?데이터?타입으로?캐스팅 - 문제?없음 - 대입?연산자를?사용해서?데이터를?대입하면?자동?캐스팅 Down?Casting - 큰?데이터?타입을?작은?데이터?타입으로?캐스팅 - 데이터?손실?가능성?있음 - 데이터?대입?시?형?변환할?대상?앞에?형변환?연산자?사용해야?함 -
데이터?형변환 int i = 10; double d = 2.39485; char c = 'c'; double d2 = i; System.out.println(d2); int i2 = c; System.out.println(i2); int i3 = (int)d; String s = "s" + 1; String s2 = 1 + "s"; System.out.println(s); System.out.println(s2); System.out.println(3/2); System.out.println(3/2.0); System.out.println(3.0/2);
연산자 - - - - - - - - 산술?연산자:?+,?-,?*,?/,?% 대입?연산자:?= 복합?대입?연산자:?+=,?-=,?*=,?/=,?%= 증감?연산자:?++,?-- 비교?연산자:?>,?>=,?<,?<=,?==,?!=,?instanceof 비트?연산자:?&,?|,?^,?~ 논리?연산자:?&&,?||,?! 조건?삼항?연산자:????:?
조건문 - - - 조건에?따라?서로?다른?statement를?실행하기?위해?사용 if-else?문과?switch-case문?2가지?방법?존재 주로?사용하는?것은?if-else?문
if-else?문 - - if,?if-else,?if-else?if?...?-?else?3개의?형식이?존재 condition?안에는?반드시?true/false?값이?계산되어야?함 if(condition) { statements } else if(condition) { statements } else { statements } if(condition) { statements } else { statements } if(condition) { statements }
if-else?문?예제 - 주어진?숫자가?양수인지,?음수인지,?0인지?판별 int number = 0; if (number > 0) { System.out.println("Number is positive." ); } else if (number < 0) { System.out.println("Number is negative." ); } else { System.out.println("Number is 0."); }
if-else?문?연습 - - - - - 정수형?변수?score?선언?및?초기화 score가?90?이상이면?‘A’?출력 score가?80?이상?90?미만이면?‘B’?출력 score가?70?이상?80?미만이면?‘C’?출력 score가?70?미만이면?‘F’?출력
switch-case?문 - - - 정수형?변수의?비교만?가능 각?조건?끝에?break가?반드시?있어야?함 모든?조건에?해당하지?않으면?default?조건?수행 switch(integer value){ case val1: statements break; case val2: statements break; case val3: statements break; default: statements break; }
switch-case?문?예제 int countryNum = 82; switch(countryNum){ case 82: System.out.println(“Korea”); break; case 1: System.out.println(“USA”); break; case 81: System.out.println(“Japan”); break; default: System.out.println(“Wrong Number”); break; }
반복문 - - - 특정?statement(s)를?반복해서?실행하기?위해?사용? for,?while,?do-while?문?3가지?방법?존재 for문을?주로?사용
for?문 - 초기화,?조건식,?증감식?그리고?수행할?block?또는?statement로?구성 for(int i=0 ; i<10 ; i++) { System.out.println(i); }
while?문 - 조건식과?수행할?블럭{}?또는?문장으로?구성 int i = 0; while(i < 10) { System.out.println(i++); }
do-while?문 - - while문의?변형.?블럭{}을?먼저?수행한?다음에?조건식을?계산 블럭{}이?최소한?1번?이상?수행될?것을?보장 int i = 0; do { System.out.println(i++); } while(i < 10);
Break - - 자신이?포함된?하나의?반복문?또는?switch문?밖으로?나옴 주로?if문과?함께?사용해서?특정?조건을?만족하면?반복문을?벗어남 int i = 0; while(true) { if(i == 10) break; System.out.println(i++); }
continue - - 자신이?포함된?반복문의?끝으로?이동(다음?반복으로?넘어감) 현재?반복의?continue?이후?statement는?실행?되지?않음 for(int i=1 ; i<=100 ; i++) { if(i%2 == 0) continue; System.out.println(i); }
반복문?연습 - 구구단?출력
배열 - 배열은?동일한?자료형을?갖는?변수들의?집합을?위한?자료구조 - 학생?30명의?이름?데이터?배열 - 직원?100명의?연봉?데이터?배열 - 국민?5000만명의?나이?데이터?배열 - 배열은? - 동일한?자료형이어야?하며 - 순서가?있고 - 길이가?고정됨 -
배열의?선언 - - 2가지?방법으로?선언?가능 1번?방법이?주로?사용?됨 1) String[] studentsArray; 2) String studentsArray[];
배열의?생성 - - - 배열은?객체 Java의?모든?객체는?new?키워드를?사용하여?생성 생성?시에?배열의?길이를?고정 String[] studentsArray; studentsArray = new String[20];
배열의?초기화 - - - 배열은?객체 Java의?모든?객체는?new?키워드를?사용하여?생성 생성?시에?배열의?길이를?고정 String[] studentsArray = new String[20]; studentsArray[0] = “Tom”; studentsArray[1] = “Emma”; studentsArray[2] = “Jacob”; studentsArray[3] = “Mia”; studentsArray[4] = “David”; … studentsArray[19] = “Ella”;
배열의?선언과?동시에?초기화 - - 배열의?선언과?동시에?초기화?가능 {}를?사용하여?배열을?초기화 String[] studentsArray = { “Tom”, “Emma”, “Jacob”, “Mia”, “David”, … “Ella” };
배열의?값?접근 - - 배열의?각?요소는?index?를?통해?접근?가능 Index?의?범주는?0?~?배열의길이??1 int[] scoresArray = {99, 85, 100, 69, 95}; int score1 = scoresArray[0]; int score2 = scoresArray[4]; int score3 = scoresArray[5]; scoresArray[3] = 100; scoresArray[5] = 200;
배열의?length - 배열의?길이는?length?라는?멤버변수로?조회 int[] scoresArray = {99, 85, 100, 69, 95}; int len = scoresArray.length; System.out.println(len);
배열과?반복문 - 배열의?length?값을?이용하여?배열?전체?반복?하며?값?조회 for (int i=0; i < studentsArray.length; i++) { System.out.println(“student ” + i “ is “ + studentsArray[i]); }
배열과?반복문 - 인덱스가?중요하지?않을?때에는?향상?된?for문?사용?가능 for (string student : studentsArray) { System.out.println(student); }
배열?연습 - 아래?점수가?순서대로?저장된?scoresArray?배열?생성/초기화 ????78,?85,?100,?69,?100,?80,?100 scoresArray?배열의?길이를?구하여?출력 scoresArray?배열의?4번째에?저장된?값을?출력 scoresArray?배열에?저장된?값이?모두?100이?되도록?값을?변경 2가지?for문을?모두?사용하여?scoresArray의?값을?출력 - - - -