자료구조자바세미나 Week1
00 Contents 목차 01 Introduction 02 JAVA? 03 Basic Grammar 04 Array 05 String 06 Class & Method 07 Practice
01 Introduction 자료구조자바세미나기본소개 일시장소 IDE 대상 매주수요일저녁 6 시 (2019.03.20 ~ 2019.04.10) 상허연구관 101 호 Eclipse 자료구조수강생
01 Introduction 자료구조자바세미나커리큘럼 1주차 :, 자료형, 클래스와메소드 (1) 2주차 : 클래스와메소드 (2), 객체, 객체, 객체,, 객체 3주차 : 또객체, 객체,, 객체상속과다형성 4주차 : 객체지향프로그래밍실습
02 JAVA? 자바를소개합니다 객체중심의언어 ( 객체지향언어 ) 매우단순한언어운영체제에독립적인언어프로그래밍에집중할수있는언어
03 Basic Grammar 자바의기본자료형 자료형 크기 용도 boolean 1byte 논리 (true, false) char 2byte 문자 byte 1byte 정수 (-128~127) short 2byte 정수 (-32768~32767) int 4byte 정수 (-2147483648~2147483647) long 8byte 정수 (-9223372036854775808~9223372036854775807) float 4byte 실수 ( 적당한범위 ) double 8byte 실수 ( 큰범위 ) * 변수선언방법 ( 자료형 ) ( 변수이름 ); 예 ) int number; ( 처음엔 ) 어차피변수는쓰는거만씀
03 Basic Grammar 자바의기본연산자 연산자의미예 = 대입 x=3 + 덧셈 x+y - 뺄셈 x-y * 곱셈 x*y / 나눗셈 x/y % 나머지 (mod) x%y ++ 더하기 1 x++, ++x -- 빼기 1 x--, --x 연산자의미예 == 같은가? x==y!= 다른가? x!=y > 큰가? x>y < 작은가? x<y >= 크거나같은가? x>=y <= 작거나같은가? x<=y && 그리고 (AND) P && Q 혹은 (OR) P Q! 반대 (NOT)!P
03 Basic Grammar Hello World 를출력해보자 File New Project Java Project Project Name Finish
03 Basic Grammar Hello World 를출력해보자 마우스우클릭 New Class Class Name Finish
03 Basic Grammar Hello World 를출력해보자 코드작성 Ctrl + F11 Tip! Tip! main + Ctrl + Space Bar public static void main(string[] args) syso + Ctrl + Space Bar System.out.println();
03 Basic Grammar System.out.print vs System.out.println 뒤에붙은 ln 은 Line 의의미
03 Basic Grammar 숫자를입력받아보자 import java.util.scanner; Scanner scan = new Scanner(System.in); Scanner Class 를 import / Scanner 객체생성 int number = scan.nextint(); number 변수에 Integer 값받기 그런데, 값이제대로들어갔을까?
03 Basic Grammar 입력받은값을출력해보자 System.out.println( 입력받은값은 + number + 입니다 ); 입력받은값을 number 변수를이용해출력
03 Basic Grammar Scanner Class https://docs.oracle.com/javase/7/docs/api/java/util/scanner.html 위사이트에접속하면 Scanner 클래스의 Reference 를확인할수있음 자주쓰는메소드들 nextint() nextdouble() nextfloat() nextbyte() nextline() Next()
03 Basic Grammar 조건문 IF SWITCH If 로시작해서 else if 를거쳐 else 로끝남 하지만, else if 와 else 의사용은선택적임 case 로나누어사용함 변수의값에따라 case 를옮겨다님
03 Basic Grammar 조건문 - IF IF 문의형식 if( 조건1 ) {} else if ( 조건2 ) {} else if ( 조건3 ) {} else {} 연관성이있는조건을비교할때 else if 를쓴다
03 Basic Grammar 조건문 - SWITCH SWITCH 문의형식 switch( 변수명 ) { case [case1]: break; case [case2]: break; } [case] 에는변수와같은자료형의값이들어가야한다
03 Basic Grammar 반복문 - FOR FOR 문의형식 for ( 초기화 ; 지속조건 ; for 문이 1 회끝날때수행할작업 ) { } codes
03 Basic Grammar 반복문 - WHILE WHILE 문의형식 while ( 지속조건 ) { } codes
03 Basic Grammar 반복문 - 강제종료
04 Array 왜필요할까? 학생 3 명의성적을받아그평균을출력하는프로그램을만들어보자 E.A.S.Y. 3 명의성적을저장할변수를만든다 3 명의성적을입력받는다 평균을구해서출력한다
04 Array 왜필요할까? 하지만, 학생이 100 명이라면? 점수를저장할공간선언만 100 줄 ^^ 배열을사용하자 ( 선언은한줄이면끝난다 )
04 Array How to use it? ( 배열자료형 ) ( 변수명 ) = new ( 배열자료형 + 할당공간 ) Int[] student = new int[10]; student[0], student[1],, student[99] 가생성됨 정수배열 정수 (int) + 배열 ( [] ) int[] 문자배열 문자 (char) + 배열 ( [] ) char[] 실수배열 실수 (float) + 배열 ( [] ) float[] FOR 문을이용하여배열데이터처리!
04 Array How to use it? 학생 10 명의성적을받아그평균을출력하는프로그램을만들어보자
05 String String 이란? char 를배열로만들면? char[10] 을만들면 10 개의문자를저장할수있고결과적으로 문자열 을저장할수있다? char[0] char[2] char[4] char[6] char[8] char[1] char[3] char[5] char[7] char[9] 물론, 가능하지만 생각하고고려해야할것들이너무나도많다 (C 언어에서이렇게하자 ) 자바는 String 을지원해준다 ( 자바는친절하다 )
05 String String 이란? 선언방법 String str; 문자열을입력하고출력하는것은기본적으로가능하며, 다양한메소드를이용해편리하게사용할수있음 문자열을입력받는메소드 Scanner.next() vs Scanner.nextLine() Scanner.next() : 개행문자나띄어쓰기를제외하고입력받는다. Scanner.nextLine() : 모든입력을받는다.
05 String String 의유용한 Method https://docs.oracle.com/javase/9/docs/api/java/lang/string.html 위사이트에접속하면 String 의 Reference 를확인할수있음 charat(int index) : 해당 index 위치에있는 char 값을반환한다. equals(object obj) : obj와값을비교하여같으면 true, 다르면 false를반환한다. indexof(string str) : 인자로넘긴 str이처음나오는 index 값을반환한다. length() : 해당하는 String의길이를반환한다. replace(char old, char new) : old 값들을 new값들로변환한후 String을반환한다. substring(int begin, int end) : begin index부터 end index까지의 String을반환한다. 다른자료형에있는 String 과관련된유용한 Method tostring(object obj) : obj 의자료형을 String 의형태로바꿔반환한다.
06 Class & Method 클래스란? 클래스 : 객체를생성하기위한틀 클래스에는변수, 메소드, 생성자, 소멸자등이들어갈수있다. 변수메소드생성자소멸자 값을저장하는데이터공간프로그램을진행하는도구 ( 함수 ) 혹은객체를관리하는도구객체가생성될때진행하는프로세스를가진도구객체가소멸될때진행하는프로세스를가진도구 단, 모든프로그램은반드시메인메소드를가져야한다.
06 Class & Method 메소드란? 메소드 : 클래스내부에서관리자노예의역할을한다. 일시키면해야한다 < 접근자 > < 리턴타입 > < 메소드이름 > ( < 매개변수 > ) { 메소드구현 } 예시 : public int getsum(int a, int b) { return a+b; } 내클래스안에있는메소드는내소유 마음껏부릴수있다 다른클래스안에있는메소드는다른클래스소유 허락받아야쓸수있다 ( 객체 ) 메소드호출방법 : 메소드이름 ( 매개변수 );
06 Class & Method 접근자란? 접근자 : 메소드 ( 혹은클래스 ) 에접근할수있는권한에제한을둘수있는방법 public 공용의것. 모두가접근할수있다. private 사적인것. 모두가접근할수없다 ( 자기자신만접근할수있다 ). protected 보호된것. 자신과자기자식 ( 상속자 ) 만접근할수있다. default 같은패키지에있는클래스만접근할수있다.
06 Class & Method 메인메소드 메인메소드 : 프로그램이실행될때가장먼저실행되는메소드 public static 프로그램을실행할때 JVM(Java Virtual Machine) 이쉽게접근할수있도록함 메모리에바로올려놓아별도의객체가필요없이바로실행이가능하도록함 static? static으로선언하면객체화할필요없이메모리에바로올라가게된다메인메소드는아무도호출해주지않고, 프로그램이실행될때 JVM에서바로실행해야하므로시작과동시에메모리에올려놔야한다. static 으로선언된 method 는 static 끼리 만친하다
06 Class & Method 메소드를사용해보자
06 Class & Method 객체란? 다른클래스를 ( 다른클래스가가진메소드를 ) 사용하기위한 복사본 < 클래스이름 > < 객체이름 > = new < 클래스이름 >( < 매개변수 > ); Scanner 클래스가가지고있는 nextint, nextline 등의메소드 ( 기능 ) 를사용하려면? 내가가지고있는메소드가아니기때문에허락을받는다 ( 객체를생성한다 ) Scanner scan = new Scanner(System.in);
06 Class & Method 계좌관리프로그램 - 1 단계. 클래스구상하기 1) 계좌관리를위해어떤변수가있어야할까? - 변수는 private 로선언한다. - 예금주, 계좌번호, 잔액등 2) 그변수들을어떻게관리할것인가? - 기본적인관리메소드 : getter / setter
06 Class & Method 계좌관리프로그램 - 2 단계. 클래스생성하기 이름, 계좌번호, 잔액에해당하는변수들을클래스내에선언 private 로선언된변수에접근할수있도록 getter / setter 메소드생성
06 Class & Method 계좌관리프로그램 - 2 단계. 클래스생성하기 Tip! Getter/Setter 는다음과같이한번에생성할수있음 마우스우클릭 Source Generate Getter and Setter Generate
06 Class & Method 계좌관리프로그램 - 3 단계. 필요한메소드추가생성하기 입금, 출금이가능하도록 withdraw, deposit 메소드생성 객체생성시변수를초기화할수있는생성자메소드생성
06 Class & Method 계좌관리프로그램 - 4 단계. 객체생성하고활용하기
06 Class & Method 객체를배열로선언하는방법 ( 주의!!) 일반변수로배열을선언할때 int[] abc = new int[10]; 객체를배열을선언할때 Account[] account = new Account[10]; 가끝이아니다 반드시객체를배열로선언한후, 각공간의객체를생성 ( 생성자호출 ) 해줘야한다.
07 Practice 학생조회프로그램 1. Student 클래스생성 2. 5개의 Student 객체를생성하여학생들의정보를입력 ( 자유롭게 ) 3. 학생검색메뉴를무한반복 - 메뉴 : 이름으로검색 / 학번으로검색 / 종료
07 Practice 학생조회프로그램 메인클래스 Student.java
THANK YOU - END -