DataScience Lab. 박사과정 김희찬 2017-07-10 (월) Big Data Analytics Short Courses, Summer, 2017 자바 맛보기 DataScience Lab. 박사과정 김희찬 2017-07-10 (월)
프로그래밍이란? 내가 원하는 모양대로 레고를 조립하는 것 원하는 바를 만드려면 각 블록이 어떻게 생겼는지 무슨 색인지 어떻게 움직이는지 알아야함
프로그래밍이란? 그렇지 못할 경우에는 프로그램이 원하는대로 구동이 안되거나 구동 자체가 안됨
자바란 무엇인가 객체지향 패러다임을 성공적으로 활용 객체지향? 클래스? 객체?
클래스와 객체 객체지향 (Object-Oriented) 기법에서는 그럼 객체는? 기능 단위를 클래스라는 조각으로 나눔 클래스가 Actor (Dog…) 메소드(Method)가 행위 (run…) 멤버 변수(Variable)가 상태 (white…) 클래스는 서로 연결 관계를 가질 수 있음 동물 : 상위 클래스 개, 양 : 하위 클래스 그럼 객체는? 실제로 생성된 클래스를 가리킴 실존하는 개는 서로 다르지만, 객체는 다르지만 같은 개이다 클래스는 같음 클래스 만으로는 사용할 수 없음 -> 꼭 객체를 생성해야함
클래스와 객체 다른 예제로 클래스과 객체의 차이를 보자 자동차 클래스로 실존하는 여러 객체를 만들 수 있음 좀 더 세분하여 설정할 수도 있음 벤츠, BMW, 아우디를 자동차의 하위 클래스로 선언, 각 모델을 객체로 생성 클래스는 자동차 설계도 객체는 설계도를 이용하여 직접 생성한 자동차
클래스의 구성 앞서 이야기한 것과 같이… 멤버 변수 멤버 메소드 (함수) 클래스에서 저장하고 있어야할 정보 해당 클래스의 특징 등 멤버 메소드 (함수) 클래스가 수행할 수 있는 것
변수 수학에서의 변수 프로그래밍에서의 변수 지시대명사 ‘데이터를 담는 상자’를 가리키는 지시대명사 데이터를 담는 상자는 메모리의 일정 공간 a = 10 b = a a = 11 b의 값은?
변수 자바 코드에서의 변수 선언 이해하기 메모리에 정수가 들어갈 상자 생성 상자의 이름은 ‘integer’ 저장할 값은 10
변수 10 10 10 7 10 7 상자를 이용한 변수의 생성 및 값의 변경 이해 이때 j 값을 변경하면? 데이터를 복사 i는 그대로 10 i j 10 10 j i 7 10 7 j i
변수 변수의 종류(타입) 데이터를 저장하려면 데이터에 따라 적절한 상자가 필요 이를 위하여 여러 형태의 변수가 존재 정수 / 실수 / 참,거짓 / 글자(문자열)
변수 테스트해보자 File -> new -> new java project ‘VariableTest’이란 이름으로 프로젝트 생성 src 폴더 우클릭 -> new -> class Test / public static void main 체크박스 체크 -> finish Main 메소드란? 해당 클래스를 실행할 때 처음 실행되는 함수 방아쇠 역할
연산자 산술 연산자 연산자도 우선순위가 존재함 사칙연산 + - * / Mod %
연산자 증감 연산자 변수 앞, 뒤로 다음 부호를 넣어서 연산 앞에 붙이면 다른 작업하기 전에 변수의 수를 변경 ++, -- 앞에 붙이면 다른 작업하기 전에 변수의 수를 변경 뒤에 붙이면 일단 작업하고 변수의 수를 변경
연산자 비교 연산자 같은지, 다른지 초과, 미만, 이상, 이하 ==, != 초과, 미만, 이상, 이하 >, <, >=, <= 비교 연산의 결과는 boolean(참 거짓/true false)임
연산자 논리 연산자 AND, OR &&, || 논리 연산의 결과는 boolean(참 거짓/true false)임
클래스와 객체 방금 테스트할 때 사용한 것도 클래스인가? 그러면 변수랑 메소드도 만들 수 있겠네? YES! Test라는 이름의 클래스 실행 시 시작할 부분 (main 메소드)
클래스와 객체 멤버 변수는 어떻게 생겼나? 일반 변수랑 똑같이 생겼으나 그 위치가 조금 다름 클래스 내의 모든 메소드에서 해당 변수를 이용할 수 있음
클래스와 객체 메소드는 어떻게 생겼나? 공개 범위 / 리턴 데이터 형태 / 메소드 이름 / 입력 파라미터 리턴 형태는 메소드 수행 결과를 외부로 반출할 형태와 같음 리턴하는 데이터가 없는 경우도 존재 (void)
클래스와 객체 반복되는 계산이나 절차는 메소드로 만드는 것이 좋음
클래스와 객체 클래스 내의 공개 범위 public은 접근 권한을 나타냄 Protected : 해당 클래스 내의 멤버 클래스 끼리만 접근 가능 Private : 모든 외부 클래스에서 접근 불가
클래스와 객체 Static은? static은 클래스에서 유일하다는 것을 나타냄 만약 클래스에 static variable이 있다면, 같은 클래스의 여러 객체가 해당 variable을 공유함 수박바(클래스)는 여러 개(객체)가 실존하지만 이름은 ‘수박바’로 같음 이때 이 이름이 static 변수라고 볼 수 있음
객체 만들기 상품 클래스를 만들어보자! 필요한 변수 필요한 메소드 상품명 상품 가격 getter, setter print 클래스의 세부 정보를 맘대로 바꾸면 안되니까, 클래스가 정의된 대로만 변경하기 위한 방법 print 상품명과 가격을 출력하는 메소드 Product() 생성자라는 이름의 메소드로 리턴형이 없음 객체가 만들어질 때 수행하는 것 (일종의 main함수?) 보통 멤버 변수를 초기화하는데 사용함
객체 만들기 상품 객체를 만들어보자! 클래스를 이용해서 어떻게 만들지? new 명령어! 뒤에 메소드 처럼 괄호()는 생성자 메소드를 실행하는 것 생성 시 변수의 형태는 생성할 클래스와 같은 이름
조건문 만약 ~라면? ~하기 if ( condition ) statement; if ( condition ) 조건(condition)에 어떤 표현을 적고 boolean 형이 true면 statement를 실행 아니면 넘어감 1 > 2 또는 else로 분기 condition evaluated false if ( condition ) statement; statement true if ( condition ) statement; else
조건문 조건에 따라 다른 동작을 수행 시나리오 1 시나리오 2 조건의 범위는 메소드와 마찬가지로 { } 로 구분함 변수가 0보다 크면? A를 출력하고 그 이외에는 B를 출력 시나리오 2 변수가 5보다 크면? A를 출력하고, 5보다는 작으나 0보다 크면? B를 출력하고 그 이외에는 C를 출력 조건의 범위는 메소드와 마찬가지로 { } 로 구분함
조건문 이중, 삼중 조건문? 2의 배수이면서 5의 배수라면? 조건문 내에 새로운 조건문을 넣어서 여러 분기를 만들 수 있음
반복문 유사한 작업을 반복하기 위하여 사용 모든 반복분은 아래와 같은 설정이 필요함 반복문은 세 종류의 형태가 존재 시작 설정 지속 여부 조건 Boolean 형태의 어느 것이든 가능 반복문은 세 종류의 형태가 존재 While loop Do ~ while loop For loop
반복문 while ( condition ) statement; While loop 조건 판단 참이면 Statement 실행 실행 후 다시 조건 판단 아니면 넘어감 condition evaluated while ( condition ) statement; false statement true
반복문 While loop 특정 문장을 열 번 출력하고 싶다면? 한번 출력하고 하나 세고, 한번 출력하고 둘 세고, …. 숫자를 저장할 공간을 먼저 만들어야겠죠? 열 번째를 세고 멈추면 됨
직접 해보기! 1에서 100까지 더하기 구구단 만들어보자 1~9까지 각각 1~9까지 곱한 후 출력!
직접 해보기! 윤년 찾기 윤년은 1년이 정확히는 365.2422일이기 때문에 이를 보정하기 위하여 대략 4년에 한번씩 윤년을 넣어 이를 보정하는 것 윤년의 조건은 다음과 같음 4의 배수인 해는 윤년임 100의 배수인 해는 윤년에서 뺌 400의 배수인 해는 도로 윤년으로 함 다음 데이터를 테스트 윤년 2002, 2008 비윤년 1997, 2100 필요한 변수는? 입력 연도 필요한 제어문은? 다중 if문
THANKS
환경 설정하기 설치할 것들 자바 개발 툴 설치 자바 개발 키트 (Java Development Kit) 에디터 (Eclipse) 자바 개발 툴 설치 구글에서 “java jdk” 검색 첫 번째 결과에 접속 JDK 다운로드
환경 설정하기 자바 개발 툴 설치 약관 동의 윈도우 x86 버전으로 다운로드 다운 받은 파일 실행 변경 없이 ‘다음’ 연타로 설치 진행 자바 정상 설치 확인 시작+R 버튼 ‘cmd’ 입력 후 엔터 ‘java –version’ 입력
환경 설정하기 IDE 설치 Eclipse.org 접속 -> 우상단 Download -> Download packages Eclipse installer 32bit 다운로드 기부 관련은 무시 실행 후 맨 위 IDE for java 클릭 별다른 변경 없이 Next로 진행