2주 실습강의 Java의 기본문법(1) 인공지능연구실.

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
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는 처음이지! 제3장선택과 반복.
3. C++와 객체지향 C++ 코딩 방법 객체 단위로 2 개의 파일 인터페이스 파일 구현파일
Vision System Lab, Sang-Hun Han
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
제 1장 C 언어의 소개.
객체지향 프로그래밍.
Chap05 상속 5.1 상속의 개요 5.2 멤버 변수의 상속 5.3 메소드의 상속과 오버라이딩(Overriding)
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
Java Presentation 중간 시험2 풀이
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제7장 제어구조 I – 식과 문장.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
명품 JAVA Programming.
Java RMI (Remote Method Invocation)
Power Java 제4장 자바 프로그래밍 기초.
[INA470] Java Programming Youn-Hee Han
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
명품 Java Programming.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
DataScience Lab. 박사과정 김희찬 (월)
C ++ 프로그래밍 시작.
김 정 석 Web Programming 김 정 석
제 2 장 변수와 상수.
6장 객체-지향 설계 ①.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
제1장 서론.
2009학년도 1학기 상지대학교 컴퓨터정보공학부 고 광 만
6장 객체-지향 설계 ①.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
소프트웨어 공학 (Software Engineering)
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
Web programming Chap 04 상속 김 정 석
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터공학실습(I) 3주 인공지능연구실.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
JA A V W. 04.
자바 5.0 프로그래밍.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
[ 단원 06 ] 상속과 다형성.
3장,4장 발표 서정우.
자바 5.0 프로그래밍.
Java RMI (Remote Method Invocation)
Java 5장. 객체지향 개념 public class SumTest {
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
DataScience Lab. 박사과정 김희찬 (화)
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
C++ 언어의 특징
Choi Younghwan CSE HUFS
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Presentation transcript:

2주 실습강의 Java의 기본문법(1) 인공지능연구실

Class and Package Package 소스파일의 구성 서로 관련있는 class와 interface의 집합 package 패키지 명; // 만든 class를 어느 package로 묶겠는가를 지정 import 패키지 명.클래스 명; // 기존에 있던 package안에 있는 class를 사용하겠다는 // 의미 class 클래스 명{ ……. } Java => import C/C++ => #include 자동으로 default Package(java.lang.*)를 사용 Javac –d.HellowWorld.java : 컴파일시 d옵션을 주면 패키지 선언에 따라 자동으로 디렉터리가 생성된다. 그리고 컴파일된 클래스 파일은 해당 디렉터리에 들어 간다.

Identifier Class 이름, method이름, variable이름 등, 프로그래머가 붙여주는 모든 이름을 Identifier라 함 Identifier를 만드는 규칙 대소문자는 구분하고, 길이의 제한은 없다 문자나 underscore(_), dollar sign($)으로 시작할 수 있다 (첫 문자는 숫자로 시작할 수 없다) 키워드는 쓸 수 없다 잘 만든 Identifier class 또는 interface 이름인 경우 : Member, SpecialMember variable 또는 method 이름인 경우 : name, memberName, clear, clearData Constants(상수) : HEAD_COUNT, MAX_PAGE

예약어(Keywords) Java 프로그램에서 문법적인 기능을 수행하는 핵심 단어들로, 기능이 미리 예약되어 있다 자바에서는 모든 primitive data type의 크기가 고정되어 있고, 프로그래머가 직접 데이터의 크기를 계산해서 메모리를 할당받는 경우가 없기 때문에 sizeof 키워드가 없다 자바키워드에는 대문자로 된 것이 하나도 없다

Data Type Primitive Type Non-Primitive type (object type) 구분 데이터형 바이트 수 유효 데이터 Logical boolean ㅡ true or false Textual char 2바이트 일반적인 문자. 한글처리 가능. Integral byte 1바이트 -27 ~ 27-1 short -215 ~ 215-1 Int 4바이트 -231 ~ 231-1 Long 8바이트 -263 ~ 263-1 Floating float 소수점이 있는 숫자로 끝에 F또는 f가 붙은 숫자(ex : 3.14F) ±3.40282347 double 소수점이 있는 숫자로 끝에 D또는 d가 붙은 숫자(ex : 3.14D) => 부동소수계열의 default 데이터형

OOP(Object Oriented Programming) 특정 데이터와 관련된 함수들을 가지는 프로그램 모듈 실세계 영역에 있는 정보, 물건, 사물, 개체, 개념 등을 표현함 객체(Object) = 속성(Attributes) + 행위(Behaviors) = 변수(Variable) + 메소드(Methods) 객체지향 프로그래밍에서 모든 객체는 추상화 된다. 추상화(Abstraction) : 객체가 자신의 정보를 안에 감추고 있으면서 외부에 구 체적인 것이 아닌 추상적인 내용만 알려주는 것을 의미한다. 실세계의 object를 프로그램에 반영하려면, 실제 object를 프로그램에 적용할 수 있는 형태로 변형시켜야 한다. 이런 작업을 추상화(abstract)라고 한다

Object와 Class(1) Account.java Public class Account {          private String accountNum = "422-01-0903895";          private String password = "12345678";          private long restMoney = 34123415;          private float interest = 3.34F;            public void saveMoney(long amount) {                       restMoney = restMoney + amount;          }          public void withdrawMoney(long amount) {          restMoney = restMoney - amount;           }          public long getRestMoney() {                       return restMoney;          public void setInterest(float newInterest) {                       interest = newInterest; }

Object와 Class(2) Account Class의 Object 생성 Account x; // reference variable 만듦 X = new Account(); // 실제 Object를 만든 후 reference variable에 대입함

Object와 Class(3) OOP 에서 Ojbect의 3가지 속성 encapsulation (은닉) : 부모 class 형태로 데이터와 코드를 묶어놓고, 내부의 데이터를 외부에서 접근할 수 없는 형태로 구현 class 내부가 어떻게 구현되어 있는지 숨길 수 있다 중요한 data를 공개된 method(accessor)를 통해 access하도록 만든다 class를 좀 더 유지보수하기 쉽게 만든다 public class Encapsulation {               private String creaditCardNo; // private member           public void setCreaditCardNo(String str) {            creaditCardNo = str;           }           public String getCreaditCardNo() {                     return creaditCardNo;  }

Object와 Class(4) inheritance (상속) – is a relation 서브 클래스가 자신의 수퍼 클래스에서 정의된 모든 변수와 메소드를 물려 받는 성질 extends keyword 이용 class Employee {       String name;       Date hireDate;      Date dateOfBirth; } class Manager extends Employee{       String department;       Employee subordinamtes [];

Object와 Class(5) polymorphism (다형성) 같은 이름을 가진 메소드를 재정의 같은 메시지라도 서로 다르게 동작

Object와 Class(6) overriding  상속관계에서 부모로부터 받은 메서드를 사용하지 않고 같은 이름의 메서드를  재정의 해서 사용하는 것 메소드의 이름은 물론, return type, argument list까지 모두 부모의 것과 동일해야 함 class Shape { String name; public void print(String name) ……. } class Rectangle extends Shape public void print(String name) // 수퍼 클래스의 print 메소드를 재정의

public class MyCompany { public static void main(String[] args) overriding public class MyCompany { public static void main(String[] args) MyEmployee emp1 = new MyDriver(); MyEmployee emp2 = new MySecretary(); System.out.println(emp1.bonus()); System.out.println(emp2.bonus()); } 7, 8 line을 Compile time에는 MyEmployee의 bonus()라 생각한다. Run time에 실제 생성된 객체의 bonus() 호출된다. => “dynamic binding” 혹은 “virtual method invocation”이라 한다.

Object와 Class(7) overloading constructor(생성자) 메소드 이름은 반드시 같아야 하고, return type은 같아도 되고 달라도 됨 argument list는 반드시 달라야 함 int func(int x) { ... } int func(int x, int y) { ... } char func(char x, String y) { ... } constructor(생성자) object가 생성될 때, 반드시 수행되는 코드 상속되지 않는다 class Manager extends Employee{        Manager() { // default constructor                        this(“I’m Manager class");        }        Manager(String name) {               this.name = name; }

Object와 Class(8) this super 자기 자신의 object를 가리킴 자신의 constructor를 호출할 때도 사용 super 부모의 object를 의미 혹은 부모의 constructor를 호출할 때도 사용

Java의 기본 문법(1) Variable scope Local variable (지역변수) : method내에 선언된 변수 method가 수행될 때 생성되며, method수행이 끝나면 memory에서 없어진다 사용 전에 초기화 되어있지 않으면 compile error가 발생한다 Member variable (멤버변수) : class내에 선언된 변수 member 변수는 같은 class 안에 있는 모든 member method에서 사용할 수 있다 member변수는 자동으로 초기화된다 Global(or static) variable (전역변수)   class(or static) 변수는 모든 instance(or object)에서 사용 가능한 변수 Class가 instance화, 즉 object로 만들어지지 않고도 사용할 수 있다.  static이 붙은 멤버 변수 또는 method는 class 로딩시점에서 자동으로 메모리에 생성

Java의 기본 문법(2) Branch and Loop if (conditional statements) if, switch ∼ case while, do-while, for if (conditional statements) int count = getCount();          if (count < 0) {                       System.out.println("error: count is negative");          } else                       System.out.println(count + " people for dinner"); }

Java의 기본 문법(3) switch (Multiple selections) for (determinate loops) int colorNum = 0; switch (colorNum) {           case 0:                   System.out.println("color is Red");             break;           case 1:                    System.out.println("color is Blue");           break;           default:                    System.out.println("color is White");            break; } for (determinate loops) for (int i = 0; i < 10; i++) {          System.out.println(i);

Java의 기본 문법(4) Indeterminate Loops while int i = 0; while (i < 10){          System.out.println(i); i++; } do-while int i = 0; do {           i++; } while (i < 10);

Java의 Array(1) Arrays 같은 data type을 가지는 변수들의 집합 Java에서는 array를 object형태로 저장 => object는 반드시 reference 변수가 필요 new 연산자를 통해 메모리를 할당 int arr [5]; // error!

Java의 Array(2) Multidimensional Arrays Array를 모아놓은 array