DataScience Lab. 박사과정 김희찬 (월)

Slides:



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

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++ 통합 환경 들어가기.
Vision System Lab, Sang-Hun Han
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
제3장 C 프로그래밍 환경.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
Chapter 02 JAVA 프로그래밍 시작하기 01 실무에서 사용하는 JAVA 개발 환경 02 JAVA 프로그램 작성
알기 쉽게 해설한 Java 8th edition
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
어서와 Java는 처음이지! 제1장 기초 사항 IT응용시스템공학과 김형진 교수.
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
Power Java 제4장 자바 프로그래밍 기초.
Kasimov C언어 세미나 1st.
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Power Java 제10장 배열.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
제 2 장 기본 문법 (1-2) 주제 : 객체, 변수, 모듈, 상수.
Java Programming Language (4)
제3장 이클립스 사용하기.
명품 Java Programming.
PHP + Eclipse + Google Code를 이용한 개발환경
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
Java IT응용시스템공학과 김형진 교수 2장. 자바의 환경 public class SumTest {
Android 개발환경 설치 및 Hello World
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
Chapter 05. 클래스 완성. chapter 05. 클래스 완성 01. 복사 생성자 복사 생성(Copy Construction) 생성될 때 자신과 같은 타입의 객체를 변수로 받아, 이 객체와 같은 값을 갖는 새로운 객체를 생성하는 것 명시적인 생성 과정뿐만.
DataScience Lab. 박사과정 김희찬 (월)
C ++ 프로그래밍 시작.
This, static, final 지정 예약어 자바 4대 중첩 클래스
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
제1장 서론.
CHAPTER 2 자바의 환경 Section 1 자바 프로그램의 형태 Section 2 자바 프로그램의 실행환경.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
WAP Java Seminar
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
DataScience Lab. 박사과정 김희찬 (월)
[INA470] Java Programming Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
DataScience Lab. 박사과정 김희찬 (화)
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
자바 5.0 프로그래밍.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
JESS Eclipse 박영택 숭실대학교.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
03. 메모리 관리 C++ 프로그램에서 다룰 수 있는 메모리의 종류
자바 5.0 프로그래밍.
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
11장 다형성과 추상 클래스, 인터페이스 Section 1 객체의 형 변환 Section 2 연산자 Section 3 다형성
DataScience Lab. 박사과정 김희찬 (화)
C.
Choi Younghwan CSE HUFS
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Presentation transcript:

DataScience Lab. 박사과정 김희찬 2017-02-13 (월) Big Data Analytics Short Courses 자바와 객체 DataScience Lab. 박사과정 김희찬 2017-02-13 (월)

자바란 무엇인가 High Level 언어의 한 종류! 컴파일러가 그 번역을 도와줌 사람이 직접 코드를 보고 이해할 수 있음 01010111101이 아님 컴퓨터는 0, 1 밖에 모른다던데? 컴파일러가 그 번역을 도와줌 사람이 작성한 코드 -> 컴퓨터가 알아듣는 언어로 번역 주먹을 쥔다 -> 손가락 마디 근육을 이용하여 손가락을 접고, 손바닥 근육을 blahblah ‘주먹을 쥔다’의 절차를 미리 만들어 두고 같은 명령이 떨어지면 절차대로 행동함

자바란 무엇인가 객체지향 패러다임을 성공적으로 활용 객체 지향? 클래스? 객체?

클래스와 객체 객체지향 (Object-Oriented) 기법에서는 그럼 객체는? 기능 단위를 클래스라는 조각으로 나눔 클래스가 Actor (Dog…) 메소드(Method)가 행위 (run…) 멤버 변수(Variable)가 상태 (white…) 클래스는 서로 연결 관계를 가질 수 있음 동물 : 상위 클래스 개, 양 : 하위 클래스 그럼 객체는? 실제로 생성된 클래스를 가리킴 실존하는 개는 서로 다르지만, 객체는 다르지만 같은 개이다 클래스는 같음 클래스 만으로는 사용할 수 없음 -> 꼭 객체를 생성해야함

클래스와 객체 다른 예제로 클래스과 객체의 차이를 보자 자동차 클래스로 실존하는 여러 객체를 만들 수 있음 좀 더 세분하여 설정할 수도 있음 벤츠, BMW, 아우디를 자동차의 하위 클래스로 선언, 각 모델을 객체로 생성 클래스는 자동차 설계도 객체는 설계도를 이용하여 직접 생성한 자동차

환경 설정하기 설치할 것들 자바 개발 툴 설치 자바 개발 키트 (Java Development Kit) 에디터 (Eclipse) 자바 개발 툴 설치 구글에서 “java jdk” 검색 첫 번째 결과에 접속 JDK 다운로드

환경 설정하기 자바 개발 툴 설치 약관 동의 윈도우 x86 버전으로 다운로드 다운 받은 파일 실행 변경 없이 ‘다음’ 연타로 설치 진행 자바 정상 설치 확인 시작+R 버튼 ‘cmd’ 입력 후 엔터 ‘java –version’ 입력

환경 설정하기 에디터 설치 Eclipse.org 접속 -> 우상단 Download -> Download packages Eclipse installer 32bit 다운로드 기부 관련은 무시 실행 후 맨 위 IDE for java 클릭 별다른 변경 없이 Next로 진행

클래스가 가질 수 있는 것 앞서 이야기한 것과 같이… 멤버 변수 멤버 메소드 (함수) 클래스에서 저장하고 있어야할 것들 해당 클래스의 특징 등 멤버 메소드 (함수) 클래스가 수행할 수 있는 것

변수 수학에서의 변수 프로그래밍에서의 변수 지시대명사 ‘데이터를 담는 상자’를 가리키는 지시대명사 데이터를 담는 상자는 메모리의 일정 공간 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

변수 변수의 종류(타입) 변수의 크기 데이터를 저장하려면 적절한 형태로 메모리 공간을 확보해야함 이를 위하여 여러 형태의 변수가 존재 정수 / 실수 / 참,거짓 / 글자(문자열) 변수의 크기 컴퓨터는 0과 1뿐 -> bit 1byte = 8bit Int 정수는 4bytes 4 * 8 = 32bit 32자리 2진수로 표현

변수 테스트해보자 File -> new -> new java project ‘VariableTest’이란 이름으로 프로젝트 생성 src 폴더 우클릭 -> new -> class Test / public static void main 체크박스 체크 -> finish Main 메소드란? 해당 클래스를 자바로 실행할 때 처음 실행되는 함수 방아쇠 역할

변수 변수 별 크기 비교 상자 크기보다 큰 값을 넣는다면? 반대 경우는? 에러 발생! 문제 없이 저장 가능 강제로 넣는다면, 원하는 값으로 저장되지 않음 Int를 byte에 넣는다면 32 bit 중 뒤의 8bit만 저장되고 나머지는 유실됨 상자가 작으니까! 반대 경우는? 문제 없이 저장 가능

변수 형(type) 변환하기 묵시적 변환 명시적 변환 short char 작은 상자에서 큰 상자로는 자동으로 변환됨 (문제 없음) 명시적 변환 큰 상자에서 작은 상자로 변경 시 데이터가 유실됨 같은 크기여도 변수 종류가 다른 경우 본래의 데이터를 잃음 short -> char (2bytes) 왜냐하면 변수에 따라 메모리의 bit의 해석 방식이 다르기 때문 short char 1000001 1000001 65 ‘A’

연산자 산술 연산자 연산자도 우선순위가 존재함 사칙연산 + - * / Mod %

연산자 증감 연산자 변수 앞, 뒤로 다음 부호를 넣어서 연산 앞에 붙이면 다른 작업하기 전에 변수의 수를 변경 ++, -- 앞에 붙이면 다른 작업하기 전에 변수의 수를 변경 뒤에 붙이면 일단 작업하고 변수의 수를 변경

연산자 비교 연산자 같은지, 다른지 초과, 미만, 이상, 이하 ==, != 초과, 미만, 이상, 이하 >, <, >=, <= 비교 연산의 결과는 boolean(참 거짓/true false)임

연산자 논리 연산자 AND, OR &&, || 논리 연산의 결과는 boolean(참 거짓/true false)임

클래스와 객체 방금 테스트할 때 사용한 것도 클래스인가? 그러면 변수랑 메소드도 만들 수 있겠네? YES! Test라는 이름의 클래스 실행 시 시작할 부분 (main 메소드)

클래스와 객체 멤버 변수는 어떻게 생겼나? 일반 변수랑 똑같이 생겼으나 그 위치가 조금 다름 클래스 내의 모든 메소드에서 해당 변수를 이용할 수 있음

클래스와 객체 메소드는 어떻게 생겼나? 공개 범위 / 리턴 데이터 형태 / 메소드 이름 / 입력 파라미터 리턴 형태는 메소드 수행 결과를 외부로 반출할 형태와 같음 리턴하는 데이터가 없는 경우도 존재 (void)

클래스와 객체 반복되는 계산이나 절차는 메소드로 만드는 것이 좋음

클래스와 객체 public, static이 뭐에요? [공개 범위] public은 접근 권한을 나타냄 private으로 설정하면 외부에서 접근이 안됨 static은 클래스에서 유일하다는 것을 나타냄 같은 클래스의 여러 객체가 가능하나 이 객체들 사이에서 동일한 값을 유지하고 싶을 때 사용함 미니 쿠퍼 JCW라는 자동차(클래스)는 여러 대(객체)가 실존하지만 이름은 ‘미니 쿠퍼 JCW’로 같음 이때 이 이름이 static 변수임

객체 만들기 상품 클래스를 만들어보자! 필요한 변수 필요한 메소드 상품명 상품 가격 getter, setter print 클래스의 세부 정보를 맘대로 바꾸면 안되니까, 클래스가 정의된 대로만 변경하기 위한 방법 print 상품명과 가격을 출력하는 메소드 Product() 생성자라는 이름의 메소드로 리턴형이 없음 객체가 만들어질 때 수행하는 것 (일종의 main함수?) 보통 멤버 변수를 초기화하는데 사용함

객체 만들기 상품 객체를 만들어보자! 클래스를 이용해서 어떻게 만들지? new 명령어! 뒤에 메소드 처럼 괄호()는 생성자 메소드를 실행하는 것 생성 시 변수의 형태는 생성할 클래스와 같은 이름

THANKS