컴퓨터공학실습(I) 3주 인공지능연구실.

Slides:



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

명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
객체지향 프로그래밍.
Chap05 상속 5.1 상속의 개요 5.2 멤버 변수의 상속 5.3 메소드의 상속과 오버라이딩(Overriding)
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
제14장 원격 메소드 호출 김 기 환. 조 명 휘.
Java Presentation 중간 시험2 풀이
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
Chapter 11 – 예외 처리 Outline 11.1 설계 쟁점 11.2 Pl/I의 예외 처리 11.3 Ada의 예외 처리
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
컴퓨터공학실습(I) 3주 인공지능연구실.
제7장 제어구조 I – 식과 문장.
[ 단원 08 ] 예외처리와 스레드.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
정적 메소드와 정적 변수 상수 래퍼 클래스 포매팅
명품 JAVA Programming.
Java RMI (Remote Method Invocation)
Power Java 제4장 자바 프로그래밍 기초.
[INA470] Java Programming Youn-Hee Han
10장 객체-지향 프로그래밍 II ©창병모.
8장 자바 입출력.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
01. 직렬화와 역직렬화에 대하여 객체의 직렬화 직렬화와 역직렬화
명품 JAVA Essential.
명품 Java Programming.
최용술 장 Thread 최용술
Chap07 예외 처리 7.1 예외의 개요 7.2 예외 관련 클래스 7.3 예외 처리.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
DataScience Lab. 박사과정 김희찬 (월)
상속과 인터페이스 클래스의 상속에 대하여 인터페이스에 대하여.
자바 5.0 프로그래밍.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
제1장 서론.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
DataScience Lab. 박사과정 김희찬 (월)
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
Web programming Chap 04 상속 김 정 석
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
Java Chapter 4 ~ 주차.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
자바 5.0 프로그래밍.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
[ 단원 06 ] 상속과 다형성.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
자바 5.0 프로그래밍.
C# 10장. 참조형.
Java RMI (Remote Method Invocation)
6장 클래스(상속).
Java 5장. 객체지향 개념 public class SumTest {
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Choi Younghwan CSE HUFS
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

컴퓨터공학실습(I) 3주 인공지능연구실

Modifier public protected default private 어느 class에서나 참조 가능 같은 package 내의 class에서만 참조 가능, 자식 class가 다른 package에 있는 경우, 그 자식class도 참조가능. default 같은 package 내의 class에서만 참조 가능. private 같은 class 내에서만 참조 가능.

static method(1) 사용 예 public class Count {     int var1 = 0; // instance 변수     static int var2 = 1; // static 변수선언     static int getCount() { // static method 선언          return var2;     }     public static void main(String [] args){           System.out.println(Count.getCount()); // 여기 주목 } 

static method(2) - main method 왜 main()은 public인가? JDK의 Java compiler 혹은 JVM이 main()을 호출한다. 자신의 package밖에서 호출된다는 말이다. 따라서 main()은 누구나 호출할 수 있어야 한다. 요즘은 생략하거나 private으로 써도 된다. 왜 main()은 static 인가? main()이 호출되는 시점에 object(혹은 instance)가 없이도 호출할 수 있어야 한다. 왜 main()은 void 형인가? int라고 하면 compile은 되지만 실행은 안 된다. argument arg는 무엇인가? C 언어와 다른 점은 array의 arg[0]가 program의 이름이 아니라 첫 번째 command line argument의 값이라는 것이다.  

final keyword class에 final 키워드 사용 method에 final 키워드 사용 class는 절대로 상속될 수 없다. 누군가가 상속받아 새로운 class를 만들지 못하게 하려는 보안 관련 의도이다. method에 final 키워드 사용 final이 적용된 method는 절대로 overriding이 불가능하다. 보안과 프로그램의 속도 향상(overriding method 검사를 안하므로) variable(변수)에 final 키워드 사용 상수를 만들 때 사용한다. C의 #define과 유사하다.

abstract keyword interface도 일종의 abstract class abstract class TestAbstract { //abstract class는 instance가 될 수 없다        public abstract void func1() ;  } class Child extends TestAbstract { //상속받아서 instance로 만들어야 한다        public void func1() { // abstract method overriding을 해야 한다                System.out.println("여러분 fighting!! ^0^");             } } public class MainClass {         public static void main(String [] args) {            Child ta = new Child(); // TestAbstract ta = new Child();라고 해도 된다             ta.func1();        } interface도 일종의 abstract class

interface keyword interface Test1 { int YYY = 8;  public void func1();  } // YYY는 상수다 interface Test2 { public void func2(); } // func2()는 body가 없다 class Child implements Test1, Test2 {// 다중상속이 가능하다              public void func1() { System.out.println("Class Test1");  }              public void func2() {  System.out.println("Class Test2"); } // body를 가졌다 } public class TestInter1 {                     public static void main(String [] args) {                     Child c = new Child();                     c.func1();                     c.func2();

deprecation 없어지거나 변경된 API deprecation API의 예

==와 equals() ==는 주로 primitive data type간의 비교 equals()는 object간의 내용 비교 잘못된 예 public class TestEquality { public static void main(String [] args) {         String a = new String("test");         String b = new String("test");         if (a == b)   System.out.println("same"); //변수가 같은 지를 비교하는 것         else              System.out.println("different"); }

Inner class 특징 inner class outter class의 모든 member를 자유로이 호출할 수 있다. outter class의 이름과 inner class의 이름은 정확히 달라야 한다. inner class는 method 안에서도 정의 가능하다. 그러나 이 때 이 inner class가 access할 수 있는 변수는 method안의 final 변수만 가능하다. abstract(추상) inner class의 정의도 가능하다. Event handling에서 주로 쓰인다.(나중에 설명) outterclass명$innerclass명.class

Wrapper class (1) 모든 primitive data type에 대하여 해당 wrapper class가 존재한다. 예 int x = 7; Object [] arr = new Object[7]; Integer wInt = new Integer(x); // wrapper class arr[0] = wInt; int y = wInt.intValue(); // Object형 arr에 int가 들어갈 수 있다

Wrapper class (2) Wrapper class list Primitive data Type Wrapper Class boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double

기타 Collection toString() 여러 object를 element로 가지고 있는 object를 일컫는 말이다. 예를 들어 array는 collection중의 하나이다. toString() toString() method도 Object class가 가지고 있다. (equals()처럼)따라서 모든 class가 소유하고 있다. 이는 자신의 instance를 String instance로 바꾸는 데 사용된다. 사실 화면에 출력하려면 문자(String)형태로 변환되어야 한다. int d = 7; System.out.println(d); // System.out.println(d.toString());

Exception(1) Exception이란? 예 error이긴 error인데 프로그램이 멈출 필요까지는 없는 error Exception을 대문자로 시작한 이유는 Exception이 class이기 때문이다. 이 class는 모든 exception의 부모 class이다. 예 try {        } catch (ArrayIndexOutOfBoundsException e) {// ArrayIndexOutOfBoundsException가 발생하면 작동                  System.out.println(“바운드를 넘겼습니다!!");        } finally // 항상 작동 {                         System.out.println(“나는 맨날 나온다!!");        }

Exception(2) 자주 발생하는 Exception Exception 종류 예 ArithmeticException int = 12/0; NullPointerException Data d =null; System.out.println(d.toString()); NegativeArraySizeException array[-1] ArrayIndexOutOfBoundsException String [] tmp = {“A”, “B”, “C”}; While(i<4){ System.out.println(tmp[i]); i++; }

Exception(3) – 사용자정의 exception(1) public class ServerTimedOutException extends Exception { private int port;   public ServerTimedOutException(String reason, int port) {          super(reason);          this.port = port; } public int getPort() {          return port; } 

Exception(4) – 사용자정의 exception(2) public class TestExceptionThrows { static String Tmp; static public void connectMe(String SeverName) throws ServerTimedOutException { int success=-1; if(success==-1){ throw new ServerTimedOutException("Could not connect",80); } public static void main(String args[]){ Tmp="S"; try{ connectMe(Tmp); }catch (ServerTimedOutException e){ System.out.println(e.getMessage()); System.out.println(e.getPort());