SlideShare a Scribd company logo
1 of 13
Download to read offline
박혜웅
 추상화
 현실세계의 클래스화
 은닉화
 private 변수를 이용하여 변수를 숨기고,
 set...(), get...() 메소드를 이용하여 인터페이스 제공
 상속
 extends 키워드를 이용, 클래스 단일 상속만 지원.
 implements 키워드를 이용, 인터페이스 다중상속 지원
 다형성(상속이용)
 overriding: 부모의 메소드에 세 메소드 추가
 ride[타다]
 overloading: 부모의 메소드를 덮어버림
 load[싣다]
2
Access Modifier 어디서나 접근 하위 패키지에서 접근 같은 패키지 접근
public O O O
protected X O O
default(기본값) X X O
protected X X X
Usage Modifier class 키워드 앞 variable 앞 method 앞
static X 클래스 변수로 선언됨. 클래스 메소드로 선언됨
final 상속 불가 변경 불가 overriding 불가
abstract 객체 생성 불가 X 빈 메소드
3
메소드명 기능 예제
toString() 객체의 값을 문자열로 변환 String str = obj.toString();
equals() hashCode() 를 이용하여 같은 객체인지 비교 if( obj1.equals(obs2) )
clone() 객체 복사 obj2 = obj1.clone();
finalize() 객체 제거전 항상 자동으로 호출되는 메소드
getClass() 객체의 클래스 정보를 객체로 생성
Class info = ogj.getClass();
info.getname();
info.getSuperclass();
info.DeclaredField();
info.getDeclaredMethod();
4
클래스명 기능 비고
String 자열 관리 고정된 문자열에 사용
StringBuilder 문자열 관리 변경이 많은 문자열에 사용. 동기화 안함
StringBuffer 문자열 관리 변경이 많은 문자열에 사용. 동기화 함
StringTokenizer 문자열을 여러 개의 토큰으로 분리함.
5
타입 종류 예제
Primitive (원시형)
선얶 int a;
대입 a=10;
Array (배열)
선얶 int a[];
할당 a = new int[10];
대입 a[1] = 5;
Reference (클래스)
정의
class Person{
public int a;
}
선얶 Person p1;
할당 p1=new Person();
대입 p1.a = 5;
6
종류 type size 값의 범위 예제
문자 char 2 유니코드 1문자
char c = 'a';
char c = '한';
char c = 'n';
char c = 'uAAAA'
정수
byte 1 -27 ~ 27 -1 -128 ~ 127 byte b = (byte)5;
short 2 -215 ~ 215 -1 -32768 ~32767 short s = (short)30000;
int 4 -231 ~ 231 - 1 약 -21억 ~ 21억 int i = 1234567890;
long 8 -263 ~ 263 -1 약 922경 ~ 922경 long l = 1234567890123L
실수
float 4 float f = 3.14f;
double 8
double d = 3.14;
double d = 3.14d;
논리 boolean 1
boolean b = true;
boolean b = false;
 자동 형변환
 byte -> short,char -> int -> long -> float -> double
7
변환 코드 예제
원시형->객체 new 랩퍼클래스(원시형) Byte B = new Byte(b);
객체->원시형 객체.xxxValue() byte b = B.byteValue();
문자열->원시형 랩퍼클래스.parseXXX(문자열) int I = Integer.parseInt("123");
문자열->객체
랩퍼클래스.valueOf(문자열)
new 랩퍼클래스(문자열)
Integer I = Integer.valueOf("123");
Integer I = new Integer("123");
객체->문자열 객체.toString() String s = I.toString();
Primitive byte short char int long float double boolean
Wrapper Byte Short Character Integer Long Float Double Boolean
 Boxing & UnBoxing
 boxing: 원시형 -> 객체
 unboxing: 객체 -> 원시형
8
 try-catch-finally
 finally: 예외발생 여부에 관계없이 항상 실행
 catch: 상위 예외가 앞쪽에 오도록 순서 유지
 catch(Exception e){ }
 throws : 예외 발생시 호출한 곳으로 예외 전달
 void a() throws Exception{}
 class c throws Exception{}
 throw: 강제로 예외 발생
 void a(){ throw new Exception(); }
9
java.lang.Throwable
java.lang.Error java.lang.Exception
java.lang.RuntimeException java.io.IOException
java.lang.NullPointerException
java.lang.IndexOutOfBoundsException
10
인터페이스
주요 클래스
클래스
class Super{
void a() throws IOException{}
}
class Sub extends Super{
void a(){}
void a() throws IOException{}
void a() throws FileNotFoundException{}
void a() throws Exception{} //IOException하위클래스 아님
void a() throws SQLException{} //IOException하위클래스 아님
}
java.io.IOException
java.sql.SQLException
java.lang.Exception
java.io.FileNotFoundException
11
 Object
 String, StringBuffer, StringBuilder
 Math
 Date, Calendar, GregorianCalendar, Thread
 SimpleDateFormat, DecimalFormat, Formatter
12
 switch(변수) 에서 변수에 사용가능한 변수타입
 byte, char, short, int
 static import 키워드
 Static 클래스, 변수등의 패키지명 생략
 import static java.lang.Math.*;
 import static java.lang.System.out;
 enum 키워드
 기존 방식과 enum 사용방식 비교
13
기존코드 enum 사용코드
선얶
public class Gender{
public static final int MALE=1;
public static final int FEMALE=2;
}
public enum Gender{
MALE, FEMALE
}
사용
void printGender( int g )
switch(g)
case Gender.MALE: ~~~~~~
case Gender.FEMALE: ~~~~~~
}
void printGender( Gender g )
switch(g)
case MALE: ~~~~~
case FEMALE: ~~~~~
}

More Related Content

What's hot

Haskell study 12
Haskell study 12Haskell study 12
Haskell study 12Nam Hyeonuk
 
0327.web&ruby&rails
0327.web&ruby&rails0327.web&ruby&rails
0327.web&ruby&rails민정 김
 
자료구조 Project5
자료구조 Project5자료구조 Project5
자료구조 Project5KoChungWook
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Park Jonggun
 
Haskell study 14
Haskell study 14Haskell study 14
Haskell study 14Nam Hyeonuk
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Circulus
 
파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229Yong Joon Moon
 
Reflect package 사용하기
Reflect package 사용하기Reflect package 사용하기
Reflect package 사용하기Yong Joon Moon
 
Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Circulus
 
Haskell study 10
Haskell study 10Haskell study 10
Haskell study 10Nam Hyeonuk
 
04장 고급변수 사용
04장 고급변수 사용04장 고급변수 사용
04장 고급변수 사용유석 남
 
[Swift] Generics
[Swift] Generics[Swift] Generics
[Swift] GenericsBill Kim
 
[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)Bill Kim
 
Binary Search
Binary SearchBinary Search
Binary Searchskku_npc
 

What's hot (20)

Haskell study 8
Haskell study 8Haskell study 8
Haskell study 8
 
Haskell study 12
Haskell study 12Haskell study 12
Haskell study 12
 
0327.web&ruby&rails
0327.web&ruby&rails0327.web&ruby&rails
0327.web&ruby&rails
 
자료구조 Project5
자료구조 Project5자료구조 Project5
자료구조 Project5
 
Haskell study 2
Haskell study 2Haskell study 2
Haskell study 2
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
 
Haskell study 5
Haskell study 5Haskell study 5
Haskell study 5
 
Haskell study 14
Haskell study 14Haskell study 14
Haskell study 14
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
 
파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229
 
Reflect package 사용하기
Reflect package 사용하기Reflect package 사용하기
Reflect package 사용하기
 
Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저
 
Haskell study 10
Haskell study 10Haskell study 10
Haskell study 10
 
04장 고급변수 사용
04장 고급변수 사용04장 고급변수 사용
04장 고급변수 사용
 
[Swift] Generics
[Swift] Generics[Swift] Generics
[Swift] Generics
 
[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)
 
2012 Dm 07
2012 Dm 072012 Dm 07
2012 Dm 07
 
skku cp2 w4
skku cp2 w4skku cp2 w4
skku cp2 w4
 
Haskell study 7
Haskell study 7Haskell study 7
Haskell study 7
 
Binary Search
Binary SearchBinary Search
Binary Search
 

Similar to C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)

Smalltalk at Altlang 2008
Smalltalk at Altlang 2008Smalltalk at Altlang 2008
Smalltalk at Altlang 2008daliot
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리ETRIBE_STG
 
자바스크립트 패턴 3장
자바스크립트 패턴 3장자바스크립트 패턴 3장
자바스크립트 패턴 3장Software in Life
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130Yong Joon Moon
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형Hyosang Hong
 
Java_02 변수자료형
Java_02 변수자료형Java_02 변수자료형
Java_02 변수자료형Hong Hyo Sang
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
Hacosa js study 2주차
Hacosa js study 2주차Hacosa js study 2주차
Hacosa js study 2주차Seong Bong Ji
 
자바 테스트 자동화
자바 테스트 자동화자바 테스트 자동화
자바 테스트 자동화Sungchul Park
 
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기jeong seok yang
 
포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++KWANGIL KIM
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
일단 시작하는 코틀린
일단 시작하는 코틀린일단 시작하는 코틀린
일단 시작하는 코틀린Park JoongSoo
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기Yong Joon Moon
 
Python array.array 모듈 이해하기
Python array.array 모듈 이해하기Python array.array 모듈 이해하기
Python array.array 모듈 이해하기Yong Joon Moon
 
Effective c++(chapter 5,6)
Effective c++(chapter 5,6)Effective c++(chapter 5,6)
Effective c++(chapter 5,6)문익 장
 
[하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기 [하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기 인권 김
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131Yong Joon Moon
 

Similar to C프로그래머를 위한 Java 기초 입문 (Java1.5 기준) (20)

Smalltalk at Altlang 2008
Smalltalk at Altlang 2008Smalltalk at Altlang 2008
Smalltalk at Altlang 2008
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
 
자바스크립트 패턴 3장
자바스크립트 패턴 3장자바스크립트 패턴 3장
자바스크립트 패턴 3장
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형
 
Java_02 변수자료형
Java_02 변수자료형Java_02 변수자료형
Java_02 변수자료형
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
Hacosa js study 2주차
Hacosa js study 2주차Hacosa js study 2주차
Hacosa js study 2주차
 
자바 테스트 자동화
자바 테스트 자동화자바 테스트 자동화
자바 테스트 자동화
 
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기
 
강의자료3
강의자료3강의자료3
강의자료3
 
포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++포트폴리오에서 사용한 모던 C++
포트폴리오에서 사용한 모던 C++
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
일단 시작하는 코틀린
일단 시작하는 코틀린일단 시작하는 코틀린
일단 시작하는 코틀린
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기
 
Javascript
JavascriptJavascript
Javascript
 
Python array.array 모듈 이해하기
Python array.array 모듈 이해하기Python array.array 모듈 이해하기
Python array.array 모듈 이해하기
 
Effective c++(chapter 5,6)
Effective c++(chapter 5,6)Effective c++(chapter 5,6)
Effective c++(chapter 5,6)
 
[하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기 [하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131
 

More from 혜웅 박

구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색혜웅 박
 
구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable혜웅 박
 
구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS혜웅 박
 
Java 자료구조 비교 (Java1.6 기준)
Java 자료구조 비교 (Java1.6 기준)Java 자료구조 비교 (Java1.6 기준)
Java 자료구조 비교 (Java1.6 기준)혜웅 박
 
추천시스템과 협업필터링
추천시스템과 협업필터링추천시스템과 협업필터링
추천시스템과 협업필터링혜웅 박
 
국문학 용어 정리
국문학 용어 정리국문학 용어 정리
국문학 용어 정리혜웅 박
 
한국어의 문장 성분
한국어의 문장 성분한국어의 문장 성분
한국어의 문장 성분혜웅 박
 
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표혜웅 박
 

More from 혜웅 박 (9)

비트벡터
비트벡터비트벡터
비트벡터
 
구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색
 
구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable
 
구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS
 
Java 자료구조 비교 (Java1.6 기준)
Java 자료구조 비교 (Java1.6 기준)Java 자료구조 비교 (Java1.6 기준)
Java 자료구조 비교 (Java1.6 기준)
 
추천시스템과 협업필터링
추천시스템과 협업필터링추천시스템과 협업필터링
추천시스템과 협업필터링
 
국문학 용어 정리
국문학 용어 정리국문학 용어 정리
국문학 용어 정리
 
한국어의 문장 성분
한국어의 문장 성분한국어의 문장 성분
한국어의 문장 성분
 
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
 

C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)

  • 2.  추상화  현실세계의 클래스화  은닉화  private 변수를 이용하여 변수를 숨기고,  set...(), get...() 메소드를 이용하여 인터페이스 제공  상속  extends 키워드를 이용, 클래스 단일 상속만 지원.  implements 키워드를 이용, 인터페이스 다중상속 지원  다형성(상속이용)  overriding: 부모의 메소드에 세 메소드 추가  ride[타다]  overloading: 부모의 메소드를 덮어버림  load[싣다] 2
  • 3. Access Modifier 어디서나 접근 하위 패키지에서 접근 같은 패키지 접근 public O O O protected X O O default(기본값) X X O protected X X X Usage Modifier class 키워드 앞 variable 앞 method 앞 static X 클래스 변수로 선언됨. 클래스 메소드로 선언됨 final 상속 불가 변경 불가 overriding 불가 abstract 객체 생성 불가 X 빈 메소드 3
  • 4. 메소드명 기능 예제 toString() 객체의 값을 문자열로 변환 String str = obj.toString(); equals() hashCode() 를 이용하여 같은 객체인지 비교 if( obj1.equals(obs2) ) clone() 객체 복사 obj2 = obj1.clone(); finalize() 객체 제거전 항상 자동으로 호출되는 메소드 getClass() 객체의 클래스 정보를 객체로 생성 Class info = ogj.getClass(); info.getname(); info.getSuperclass(); info.DeclaredField(); info.getDeclaredMethod(); 4
  • 5. 클래스명 기능 비고 String 자열 관리 고정된 문자열에 사용 StringBuilder 문자열 관리 변경이 많은 문자열에 사용. 동기화 안함 StringBuffer 문자열 관리 변경이 많은 문자열에 사용. 동기화 함 StringTokenizer 문자열을 여러 개의 토큰으로 분리함. 5
  • 6. 타입 종류 예제 Primitive (원시형) 선얶 int a; 대입 a=10; Array (배열) 선얶 int a[]; 할당 a = new int[10]; 대입 a[1] = 5; Reference (클래스) 정의 class Person{ public int a; } 선얶 Person p1; 할당 p1=new Person(); 대입 p1.a = 5; 6
  • 7. 종류 type size 값의 범위 예제 문자 char 2 유니코드 1문자 char c = 'a'; char c = '한'; char c = 'n'; char c = 'uAAAA' 정수 byte 1 -27 ~ 27 -1 -128 ~ 127 byte b = (byte)5; short 2 -215 ~ 215 -1 -32768 ~32767 short s = (short)30000; int 4 -231 ~ 231 - 1 약 -21억 ~ 21억 int i = 1234567890; long 8 -263 ~ 263 -1 약 922경 ~ 922경 long l = 1234567890123L 실수 float 4 float f = 3.14f; double 8 double d = 3.14; double d = 3.14d; 논리 boolean 1 boolean b = true; boolean b = false;  자동 형변환  byte -> short,char -> int -> long -> float -> double 7
  • 8. 변환 코드 예제 원시형->객체 new 랩퍼클래스(원시형) Byte B = new Byte(b); 객체->원시형 객체.xxxValue() byte b = B.byteValue(); 문자열->원시형 랩퍼클래스.parseXXX(문자열) int I = Integer.parseInt("123"); 문자열->객체 랩퍼클래스.valueOf(문자열) new 랩퍼클래스(문자열) Integer I = Integer.valueOf("123"); Integer I = new Integer("123"); 객체->문자열 객체.toString() String s = I.toString(); Primitive byte short char int long float double boolean Wrapper Byte Short Character Integer Long Float Double Boolean  Boxing & UnBoxing  boxing: 원시형 -> 객체  unboxing: 객체 -> 원시형 8
  • 9.  try-catch-finally  finally: 예외발생 여부에 관계없이 항상 실행  catch: 상위 예외가 앞쪽에 오도록 순서 유지  catch(Exception e){ }  throws : 예외 발생시 호출한 곳으로 예외 전달  void a() throws Exception{}  class c throws Exception{}  throw: 강제로 예외 발생  void a(){ throw new Exception(); } 9
  • 11. class Super{ void a() throws IOException{} } class Sub extends Super{ void a(){} void a() throws IOException{} void a() throws FileNotFoundException{} void a() throws Exception{} //IOException하위클래스 아님 void a() throws SQLException{} //IOException하위클래스 아님 } java.io.IOException java.sql.SQLException java.lang.Exception java.io.FileNotFoundException 11
  • 12.  Object  String, StringBuffer, StringBuilder  Math  Date, Calendar, GregorianCalendar, Thread  SimpleDateFormat, DecimalFormat, Formatter 12
  • 13.  switch(변수) 에서 변수에 사용가능한 변수타입  byte, char, short, int  static import 키워드  Static 클래스, 변수등의 패키지명 생략  import static java.lang.Math.*;  import static java.lang.System.out;  enum 키워드  기존 방식과 enum 사용방식 비교 13 기존코드 enum 사용코드 선얶 public class Gender{ public static final int MALE=1; public static final int FEMALE=2; } public enum Gender{ MALE, FEMALE } 사용 void printGender( int g ) switch(g) case Gender.MALE: ~~~~~~ case Gender.FEMALE: ~~~~~~ } void printGender( Gender g ) switch(g) case MALE: ~~~~~ case FEMALE: ~~~~~ }