際際滷

際際滷Share a Scribd company logo
JAVA CLASS & OBJECT
煙 : 
企 : hyomee@naver.com
 : https://github.com/hyomee/JAVA_EDU
襦蠏碁  危危 貊襯 .
る 蠑語覃 蟆所鍵 願鹸.
Content
 : https://github.com/hyomee/JAVABASIC
5. Class & Object & Modifier
1. 螳豌伎ロ襦蠏碁(OOPL)
2. Class
3. Field
4. Method
5. Constructor
6. Package
7. 覦 伎
1. 螳豌伎 襦蠏碁 ( OOPL )
5. Class & Object
 螳豌:覈一危,螳豌伎(state)(behavior) 蟲豌危襦蠏碁覦企襦螳豌伎ロ襦蠏碁覦
 朱Μ企,螳豌,覃,蟯螻覦鬺壱襦語るゼ語企襴貅伎り襯朱朱
 螳豌伎ロ襦蠏碁覦語伎襦蠏碁覦蟲覓語危伎螳豌企ゼ蠍磯朱
 一危一,,貂′,企れ焔鬴螳豌企ゼ蠍磯蓋螳豌伎リ鍵レ伎殊語.
 螳豌 讌 襦蠏碁覦(OOP) 覈語 蠍磯朱  螻蠍 襦蠏碁覦 語 
5-1. 螳豌伎
螳豌伎ロ襦蠏碁語(Object-Oriented Programming Language )
Class螳襷れ伎蟾?
 Data蟯
-谿語企碁朱覲旧″
Data襯 螻
覲
覯
蟲譟一
企
伎螳 谿  .
 豌襴蟯
-谿朱豌襴蠍磯レ
襦蠏碁襦蠏碁企概
伎
襷覲
殊襭 -覲旧″伎
れ姶覦一危
襦るジ襭
-蟲譟郁覲旧″伎
伎螳 谿  貅
伎螳 谿 伎 
レ
螳讌
伎螳 谿襯 讌 .
Yes
No
谿蠍磯リ骸
蠍磯レ
殊伎
るジ伎伎
る 
谿
覓
觚危
危
覓語 企Π
 貅讌
讌
讌



レ覓 
谿 覓語 磯
危磯ゼ 覦
觚危襯 覦
覦 谿  貅
(key)



襦蠏碁
蠍一
讌
1. 螳豌伎 襦蠏碁 ( OOPL )
5. Class & Object
 貂′(Encapsulation )=覲伎
-襦蠏碁伎螳蠍磯レ覈朱焔貊襯朱るジ螻(Class )
覲伎願蠍磯蟆
-Class 煙蠍郁(private ),螻糾(public )
 (Inheritance )=+
-Class Class蟯螻  ( 覿覈  )
-Class覿覈Class  覦 蠍磯レ    
 れ(polymorphism;启Μ覈殊)=ク
- 螳豌願  螳讌 襯 螳讌   蟆.
-る殊企( :Overriding ),る襦( 蠍磯ロ :Overloading )
 螳豌 讌 襦蠏碁覦(OOP) 覈語 蠍磯朱  螻蠍 襦蠏碁覦 語 
5-1. 螳豌伎
OOP3
 殊豺(Single Responsibility Principle)
- 覈企る螳螳豈襷螳語狩.
- 轟覈襦襷企る企豪語るジ蠍磯レ覃伎.
 螳覦-豺(Open Closed Principle)
- 企る レ 企 螻   伎 .
- 蠍一ヾ 貊襯 覲蟆渚讌 朱伎 蠍磯レ 豢螳  襦 り 伎狩
 襴れ豺豺(Liskov Substitution Principle)
- 企る 語  覿覈 企るゼ 豌危  伎 
-  企る 覿覈 企れ 豈 覓伎蟇磯 讌 螻 ル
襦 伎 .
 誤壱伎る襴豺(Interface Segregation Principle)
-  企る  讌  誤壱伎る 蟲讌 襷 .
- 朱語誤壱伎る慨れ螳蟲豌伎語誤壱伎り
 譟願螻豺(Dependency Inversion Principle)
- 譟 蟯螻襯 襷碕  覲蠍  蟆  譯 覲 蟆覲企る 覲
蠍 企れ 蟆, 蟇一 覲螳  蟆 譟危伎 .
- 蟲豌伎 企る慨る 誤壱伎る 豢 企れ 蟯螻襯 襷碕伎 .
OOP5豺(SOLID)
1. Class
5. Class & Object
 Class :-覿襯譬襯手譬覈
 Instance :蟲豌伎瑚(Class煙襦螳豌企ゼ襷螻殊:Instance  )
 螳豌 讌レ 螳 蠍磯蓋 蟲譟磯 Class, 燕 襦 Instance 
5-2. Class
Class
 Class :-朱Class, 豢 Class
 Interface
覓碁 
Class
Class Abstract Class
Interface
Class 蟲譟
package .
import .
class 企る {  }
public class 企る {
int member = 5; // 
public 企る (襷り覲) {  } // 煙
public 襭 覃覈(襷り覲) { .. } // 覃
class 企企る { . } // innerClass
}
企 碁 蟲 
企 企 蟲 
Class 蟲譟 る
 碁 蟲 
- package :覦Class 襯朱襴
- import :るジpackage襯殊伎狩
- class :external class襦public襯狩れ襯朱殊
 企 蟲 
- field : Class , Class企   覲
- constructor :螳豌企ゼ燕企. 牛覃願鍵覲語煙蟾
- method :Class螳 螳讌螻  蠍磯()
- innerClass :Class企  Class
1. Class
5. Class & Object
5-2. Class
螳豌(Class ) 螳豌(Object )
 覲覃襯殊襦
 Field(襷企覲:螳豌伎) +Operation(Method:螳豌伎)
 企れ企覓語襦,れ伎覓語
 襭,螳豌伎襭
(Sample sample = new Sample() )
 Class れ襦,朱Μ瑚豌,覯襷
 語れ
:public -蠏殊螳襷豌,
:abstract -豢企るゼ
:final -伎朱讌覈,
:ClassName -企れ企
:extends -る企るゼ,
:implements -誤壱伎り規)
 豐蠍壱
:覃覈襴覯豐蠍壱
-覈企る(static 覲)螳吴瑚朱豐蠍壱
 newれ伎襷れ伎覃,企れ語ろ伎,覓朱Μ瑚豌
襷れ
 typeClass碁
 螳豌伎企覓語襦,れ伎覓語
2. 谿 襦蠏碁 蟲譟一 谿伎
5. Class & Object
5-2. Class
襦蠏碁 蟲譟一 谿
谿 襦蠏碁
 x
( 觚襭 )
 覲 a
 覲 b
螳豌伎 襦蠏碁
Class A
語ろ伎 覲
讌 覲
 x
( 觚襭 )
讌 覲
 x
( 觚襭 )
讌 覲
 x
( 觚襭 )
讌 覲
覃 x
讌 覲
覃 x
讌 覲
Class B
語ろ伎 覲
覃 x
讌 覲
覃 x
讌 覲
蠏 讌 
殊 蠏 螳
* Class B 螳豌 
   螳 *
碁 
 
static  
覦襦 蠏 螳
Class煙襦螳豌企ゼ襷螻殊 -> 語ろ伎ろ
語ろ伎
Class
3. Instance
5. Class & Object
5-2. Class
螳豌 
 企(Class )煙襦螳豌(Object )襯朱螻殊語ろ伎ろ(Instantiation )企狩覃一願骸襷れ伎螳豌企ゼ語ろ伎( Instance )螳豌企狩
螳豌伎
企る 谿語^覲覈 = new 煙();
覃覈襴蟲譟
語ろ伎
覃 
stack heap
100 Method
Field
Inner Class
Method
Heap object 
Stack 覲 
100 覯讌
企
A a1 = new A();
A a2 = new A();
100 200
Object
A
100 覯讌 200 覯讌
Object
B
A
fun
class A {
void fun();
}
語ろ伎
覃  stack heap
a1 a2
1. Field
5. Class & Object
5-3. Field
Field
 語ろ伎る(or覃る覲):企(Class )覲襦企れ覈螻褐蠏手ロ->企れ覲
 讌覲:覃(Method )覲襦企豪襷
Field 
private 襭 覲企 [ = 豐蠍郁 ]
覃覈襴 蟲譟
 語ろ伎る螳豌伎(heap)
 讌覲stack
100
100 覯讌
覃  stack heap
語ろ伎る豐蠍郁願れ
Variable 'localNum' might not have been initialized
 讌覲stackル覩襦豐蠍壱朱伎る覦
20
num
num01
Object
Instance
sum
pNum
1. Method
5. Class & Object
5-4. Method
Method
 企れ蠍磯モOperation
Method 
覦伎 覦Type Method覈( 襷り覲 ) {
ろ 覓 ;
[ return 螳 ] // 覦 type  void 企 
}
覦伎
覃 る襦 ( Method Overloading )
 蠏殊 : 蠏手ル
-public, private, default, protected
 static :
- 企れ 覃る(, 覃, 企 企) 
-  覃る ( Static Member )
- 螳豌   螳豌企.覃る覈朱 
 final : 覿覲 螳 
- , 讌覲, 覃, 企  豺 覃 螳 覩瑚 襴
 abstract :
- 蠍磯レ  讌  豢 蟆  覦 螻褐 蟲
- 豢 覃(abstract method ), 豢 企 ( abstract class )
 覃 蠏碁豌 ( Method signature )
-覃覈螻殊ルГ螳覲襦JVM覃覈螳一ルГ螳覲螳
螳襴覃企るゴ蟆語蟆伎蟆朱願覃 る襦
( Method Overloading )企 
螳覲  襷り 覲
 覦一伎 襷り覲螻 覃,  螳  螳 襦 "
     
 襷り覲 :  襷り 覲襦 覲旧 蟆曙 , 襦 蟲覿
襭(Type) 襷り覲企 [ , 襭(Type) 襷り覲企 , ]
覦Type Method覈( 襭 谿語^覲覈 ) {
ろ 覓 ;
[ return 螳 ] // 覦 type  void 企 
}
蠏 讌 蠏() 螳 覯
public  れ 覈 覃 + るジ れ 覈 企
protected  れ 覈 覃 + るジ れ  企
default ( or package )  れ 覈 覃 ( 蠏 讌  螳 )
private  企
2. 覃 る襦 ( Method Overloading )
5. Class & Object
5-4. Method
覃 る襦 ( Method Overloading )
 覃覈螻殊ルГ螳覲襦JVM覃覈螳一ルГ螳覲螳螳襴覃企るゴ蟆語蟆伎蟆
覦 覃覈( 襭 覲覈, 襭 覲覈, .. ){ }
Method signature
3. 螳覲  襷り 覲
5. Class & Object
5-4. Method
螳覲  襷り 覲 ( Variable Argument )
 MethodOverloading伎覃企Г螳覲螳襯手襷れ伎蠏豪概蠍一
 殊襭朱襷り覲螳襯朱朱讌伎蠍磯
 襷り覲覦一企語
覦 覃覈( 襭 谿語^覲覈 ){ }
1. Constructor
5. Class & Object
5-5. Constructor
煙 Constructor
 螳豌企ゼ燕蠍磯レ朱2螳讌覓碁蠏豺伎.
 覦企る螻朱狩伎狩螻覦伎伎狩.
 企れ炎螳蟆曙一惨朱螳ルГ螳覲螳蠍磯蓋煙襯殊螳伎.
 MethodOverloading襷り覲襯手讌.
蠏殊 企る(  襷り覲s ) {  } 蠍磯蓋煙 : 企る() {}
2. this()
5. Class & Object
5-5. Constructor
This()
 企る伎るジ煙襯狩語,煙企豌覯讌語伎狩, 企る伎覃る覲襯殊宛譟壱蟆曙磯this.
1. Inner Class
5. Class & Object
5-6. Inner Class
Inner Class
 企る企企るゼ覩誤.
 企るる:語ろ伎るる企企, 覃る 企企
 讌覲:讌企企る 朱
語ろ伎 覃る 企 企
(1)
(2)
(3)
(4)
(5)
1. Package
5. Class & Object
5-7. Package
Package
 觜訣覈朱焔 企ろ殊覈启
- 覓朱Μ朱磯Μ襯殊覩
 れ企る誤壱伎ろ殊覈企麹れ企
磯Μ
 れるジれ襯狩朱,企磯Μ螻豸糾規譟磯(.)朱蟲覿
襦 蟯  企る 誤壱伎るゼ 蟷 覓苦, 企れ 誤壱伎れ 讌
package れ企
Import
 覦貉危朱貊企れれ覲企ゼ覩碁Μ螻牛
- import覓語覃企るジれ企るゼれ企誤企れ
襴襷朱
 語覲(*)覩碁れ覈PackageClass蟾讌 譯朱蟆
伎
- 企麹启Class伎襷企襷朱螳ロる覩
import れ企.企れ企;
import れ企.*;
 package : import 
るジ Package : Full Package Class 覈
るジ Package : *  : Class 企襷
1. 覦 伎
 蠏殊 : 蠏手ル
-public, private, default, protected
 static :
- 企れ 覃る(, 覃, 企 企) 
-  覃る ( Static Member )
- 螳豌   螳豌企.覃る覈朱 
 final : 覿覲 螳 
- , 讌覲, 覃, 企  豺 覃 螳 覩瑚 襴
 abstract :
- 蠍磯レ  讌  豢 蟆  覦 螻褐 蟲
- 豢 覃(abstract method ), 豢 企 ( abstract class )
蠏 讌 蠏() 螳 覯
public  れ 覈 覃 + るジ れ 覈 企
protected  れ 覈 覃 + るジ れ  企
default ( or package )  れ 覈 覃 ( 蠏 讌  螳 )
private  企
9. Modifier
9-1. Modifier
覦 伎
 企 : public, default, final, abstract
 覃 : public, protected, default, private, final, abstract, static
 覃る覲 : public, protected, default, private, final, static
 讌覲 : final
 螳ロ 伎
 覃 static螻 abstract襯 蟷   .
 企れ abstract final    .
 abstract覃 蠏 伎螳 private  .
 覃 private final 螳   .
 譯殊
 蠏殊伎(access modifier)
1. 蠏殊
5. Class & Object
5-6. 覦 伎
蠏 讌
 覃る,煙,覃襯殊蠏狩蠍一讌襦誤讌
磯殊蠏朱螳蟆一.
X
X
X
蠏 讌 蠏() 螳 覯
public  れ 覈 覃 + るジ れ 覈 企
protected  れ 覈 覃 + るジ れ  企
default ( or package )  れ 覈 覃 ( 蠏 讌  )
private  企
2. static
5. Class & Object
5-6. 覦 伎
static Field
 企れ覃る(,覃,企企)
 覃る(StaticMember)
 螳豌伎煙癌螳豌企.覃る覈朱 
覃  stack heap
num : 10
100
vNum :1
staticMember
( instance )
100 覯讌
StaticMember
( Class ) static
JVM
覃覈襴 
Method  Stack  Heap 
Class  Static  Final 
 Static Member (覲)語ろ伎り豌企 螳螳煙企企螳螻旧.
覃 
stack
heap
StaticMember
sraticNum : 5
staticMember01 : 100
staticMember02 : 200
vNum :1 vNum :2
staticMember staticMember
2. static
5. Class & Object
5-7. 覦 伎
static Method
 覃(StaticMember),螳豌伎煙癌螳豌企.Method()朱
 語ろ伎る覿螳,覃企螳豌企ゼ燕蟆曙磯螳豌伎語ろ伎る螳
覃 
stack
heap
staticMethod : 100
num : 1
mnum :10
snum
語ろ伎 
instanceMethod()
Static 
staticMethod()
snum 10
2. static
5. Class & Object
5-7. 覦 伎
static 豐蠍壱 觚
 螳豌伎煙伎static field豐蠍壱讌.(覈磯瑚骸豐蠍壱蟆曙一)
 static觚襦豐蠍壱.->覃覈襴Class螳襦螳ル┝ろ
 Referencevariable麹讌襷覲蟆所ロ.
3. final
5. Class & Object
5-7. 覦 伎
final
 Field, Local Variable, Method, Class 豺覃,螳螳覩瑚襴.
 Field, Local Variable  豐蠍壱襯  .
豺 覩
Local Variable 螳 覲蟆 覿螳
Field 螳 覲蟆 覿螳
Method Override 覿螳
Class  覿螳
 Field, Local Variable 
 れ伎
3. final
5. Class & Object
5-7. 覦 伎
final
 final Method
X
 final Class
4. abstract
5. Class & Object
5-7. 覦 伎
abstract
 覩呉豢呉朱豢覃( Abstract Method )豢企( Abstract Class )螳 .
 豢覃( Abstract Method ): Method 襷 螻 蠍磯レ  覩語 Method襦  覦 螳豌伎 蠍磯 蟲 蟆朱 碁語襦( ; )  
 豢企( Abstract Class ) : 伎 豢覃( Abstract Method )螳伎 Class襦 new 襦 讌    螻  牛伎 襷 螳
 覦覯 : abstract 襭 覃覈();
覩語 貊
 貊

More Related Content

What's hot (17)

Java(2/4)
Java(2/4)Java(2/4)
Java(2/4)
handfoot
Java programming pdf
Java programming pdfJava programming pdf
Java programming pdf
Ji Hoon Lee
Java 蠍一
Java 蠍一Java 蠍一
Java 蠍一
Hyosang Hong
Java 螳襭 ed11
Java 螳襭 ed11Java 螳襭 ed11
Java 螳襭 ed11
hungrok
[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance
[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance
[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance
=求メ 螳豌 企 求≡=
=求メ  螳豌 企 求≡==求メ  螳豌 企 求≡=
=求メ 螳豌 企 求≡=
Yong Joon Moon
=求メ Descriptor求≡= 20160403
=求メ Descriptor求≡= 20160403=求メ Descriptor求≡= 20160403
=求メ Descriptor求≡= 20160403
Yong Joon Moon
譯朱 螳覦 危 Go - Scope ク
譯朱 螳覦 危    Go - Scope ク譯朱 螳覦 危    Go - Scope ク
譯朱 螳覦 危 Go - Scope ク
Darion Kim
[谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields
 [谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields [谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields
[谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields
DDD 蟲蠍一 (蟇一 Final 覯)
DDD 蟲蠍一 (蟇一 Final 覯)DDD 蟲蠍一 (蟇一 Final 覯)
DDD 蟲蠍一 (蟇一 Final 覯)
beom kyun choi
=求メ+梶≡++求≡= 20160310
=求メ+梶≡++求≡= 20160310=求メ+梶≡++求≡= 20160310
=求メ+梶≡++求≡= 20160310
Yong Joon Moon
10 data nested_classes
10 data nested_classes10 data nested_classes
10 data nested_classes
Ksug2015 - JPA2, JPA 求≡求
Ksug2015 - JPA2, JPA 求≡求Ksug2015 - JPA2, JPA 求≡求
Ksug2015 - JPA2, JPA 求≡求
Younghan Kim
9 object class
9 object class9 object class
9 object class
ORM 蟆曙一 り, 螳覦 螻殊
ORM  蟆曙一 り, 螳覦 螻殊ORM  蟆曙一 り, 螳覦 螻殊
ORM 蟆曙一 り, 螳覦 螻殊
Javajigi Jaesung
[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪
[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪
[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪
NAVER D2
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Javajigi Jaesung
Java(2/4)
Java(2/4)Java(2/4)
Java(2/4)
handfoot
Java programming pdf
Java programming pdfJava programming pdf
Java programming pdf
Ji Hoon Lee
Java 螳襭 ed11
Java 螳襭 ed11Java 螳襭 ed11
Java 螳襭 ed11
hungrok
[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance
[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance
[谿, 貊襴(Kotlin) 螳譬] 7 classes and_inheritance
=求メ 螳豌 企 求≡=
=求メ  螳豌 企 求≡==求メ  螳豌 企 求≡=
=求メ 螳豌 企 求≡=
Yong Joon Moon
=求メ Descriptor求≡= 20160403
=求メ Descriptor求≡= 20160403=求メ Descriptor求≡= 20160403
=求メ Descriptor求≡= 20160403
Yong Joon Moon
譯朱 螳覦 危 Go - Scope ク
譯朱 螳覦 危    Go - Scope ク譯朱 螳覦 危    Go - Scope ク
譯朱 螳覦 危 Go - Scope ク
Darion Kim
[谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields
 [谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields [谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields
[谿, 貊襴(Kotlin) 螳譬] 9. Properties and Fields
DDD 蟲蠍一 (蟇一 Final 覯)
DDD 蟲蠍一 (蟇一 Final 覯)DDD 蟲蠍一 (蟇一 Final 覯)
DDD 蟲蠍一 (蟇一 Final 覯)
beom kyun choi
=求メ+梶≡++求≡= 20160310
=求メ+梶≡++求≡= 20160310=求メ+梶≡++求≡= 20160310
=求メ+梶≡++求≡= 20160310
Yong Joon Moon
10 data nested_classes
10 data nested_classes10 data nested_classes
10 data nested_classes
Ksug2015 - JPA2, JPA 求≡求
Ksug2015 - JPA2, JPA 求≡求Ksug2015 - JPA2, JPA 求≡求
Ksug2015 - JPA2, JPA 求≡求
Younghan Kim
9 object class
9 object class9 object class
9 object class
ORM 蟆曙一 り, 螳覦 螻殊
ORM  蟆曙一 り, 螳覦 螻殊ORM  蟆曙一 り, 螳覦 螻殊
ORM 蟆曙一 り, 螳覦 螻殊
Javajigi Jaesung
[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪
[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪
[D2 campus seminar]梶==梶 釈= =a釈= メメ ≡メ=求 =罪
NAVER D2
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
Javajigi Jaesung

Similar to Java_05 class (20)

覦ろ磯 2
覦ろ磯 2覦ろ磯 2
覦ろ磯 2
jangpd007
螳豌伎 襦蠏碁覦 蠍磯蓋
螳豌伎 襦蠏碁覦 蠍磯蓋螳豌伎 襦蠏碁覦 蠍磯蓋
螳豌伎 襦蠏碁覦 蠍磯蓋
Java script
Java scriptJava script
Java script
伎 namespace Binding 危危蠍
伎 namespace Binding 危危蠍 伎 namespace Binding 危危蠍
伎 namespace Binding 危危蠍
Yong Joon Moon
願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)
願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)
願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)
MIN SEOK KOO
The c++ programming language 10 企 覦
The c++ programming language 10 企 覦The c++ programming language 10 企 覦
The c++ programming language 10 企 覦
PHP 7 襦 轟螻 蠍磯
PHP 7 襦 轟螻 蠍磯 PHP 7 襦 轟螻 蠍磯
PHP 7 襦 轟螻 蠍磯
PHP 螳豌伎 一危 郁屋 讌
PHP 螳豌伎 一危 郁屋 讌PHP 螳豌伎 一危 郁屋 讌
PHP 螳豌伎 一危 郁屋 讌
Yoonwhan Lee
[C++ lab] 3. c++ 襦蠏碁覦
[C++ lab] 3. c++ 襦蠏碁覦[C++ lab] 3. c++ 襦蠏碁覦
[C++ lab] 3. c++ 襦蠏碁覦
MinGeun Park
Python class
Python classPython class
Python class
Herren
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
Sung-hoon Ma
Java, android ろ壱2
Java, android ろ壱2Java, android ろ壱2
Java, android ろ壱2
Heejun Kim
(ろ襷豐覲伎襯殊)ろ襷 貉ろ れ螻 蟯 企誤伎
(ろ襷豐覲伎襯殊)ろ襷 貉ろ れ螻 蟯 企誤伎(ろ襷豐覲伎襯殊)ろ襷 貉ろ れ螻 蟯 企誤伎
(ろ襷豐覲伎襯殊)ろ襷 貉ろ れ螻 蟯 企誤伎
襴(蟲襦讌碁讌3覯豢蟲 2覿蟇磯Μ)
[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3
MinGeun Park
Java_01 蠍一
Java_01 蠍一Java_01 蠍一
Java_01 蠍一
Hong Hyo Sang
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
JinKyoungHeo
襦蠏碁覦 る磯 C 2.0 (5/E) - 8
襦蠏碁覦 る磯 C  2.0 (5/E) -  8 襦蠏碁覦 る磯 C  2.0 (5/E) -  8
襦蠏碁覦 る磯 C 2.0 (5/E) - 8
Keunhyun Oh
5.Spring IoC&DI(DI 蟯 企誤伎)
5.Spring IoC&DI(DI 蟯 企誤伎)5.Spring IoC&DI(DI 蟯 企誤伎)
5.Spring IoC&DI(DI 蟯 企誤伎)
襴(蟲襦讌碁讌3覯豢蟲 2覿蟇磯Μ)
=求メ =戟 求≡=
=求メ =戟 求≡= =求メ =戟 求≡=
=求メ =戟 求≡=
Yong Joon Moon
覿覲螳豌 朱 襴″ 焔 豕
覿覲螳豌 朱 襴″ 焔 豕覿覲螳豌 朱 襴″ 焔 豕
覿覲螳豌 朱 襴″ 焔 豕
Hun Yong Song
覦ろ磯 2
覦ろ磯 2覦ろ磯 2
覦ろ磯 2
jangpd007
螳豌伎 襦蠏碁覦 蠍磯蓋
螳豌伎 襦蠏碁覦 蠍磯蓋螳豌伎 襦蠏碁覦 蠍磯蓋
螳豌伎 襦蠏碁覦 蠍磯蓋
Java script
Java scriptJava script
Java script
伎 namespace Binding 危危蠍
伎 namespace Binding 危危蠍 伎 namespace Binding 危危蠍
伎 namespace Binding 危危蠍
Yong Joon Moon
願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)
願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)
願 覦 Chap.11 蠍磯蓋 API 企(java)(KOR)
MIN SEOK KOO
The c++ programming language 10 企 覦
The c++ programming language 10 企 覦The c++ programming language 10 企 覦
The c++ programming language 10 企 覦
PHP 7 襦 轟螻 蠍磯
PHP 7 襦 轟螻 蠍磯 PHP 7 襦 轟螻 蠍磯
PHP 7 襦 轟螻 蠍磯
PHP 螳豌伎 一危 郁屋 讌
PHP 螳豌伎 一危 郁屋 讌PHP 螳豌伎 一危 郁屋 讌
PHP 螳豌伎 一危 郁屋 讌
Yoonwhan Lee
[C++ lab] 3. c++ 襦蠏碁覦
[C++ lab] 3. c++ 襦蠏碁覦[C++ lab] 3. c++ 襦蠏碁覦
[C++ lab] 3. c++ 襦蠏碁覦
MinGeun Park
Python class
Python classPython class
Python class
Herren
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
Sung-hoon Ma
Java, android ろ壱2
Java, android ろ壱2Java, android ろ壱2
Java, android ろ壱2
Heejun Kim
[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3
MinGeun Park
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
JinKyoungHeo
襦蠏碁覦 る磯 C 2.0 (5/E) - 8
襦蠏碁覦 る磯 C  2.0 (5/E) -  8 襦蠏碁覦 る磯 C  2.0 (5/E) -  8
襦蠏碁覦 る磯 C 2.0 (5/E) - 8
Keunhyun Oh
=求メ =戟 求≡=
=求メ =戟 求≡= =求メ =戟 求≡=
=求メ =戟 求≡=
Yong Joon Moon
覿覲螳豌 朱 襴″ 焔 豕
覿覲螳豌 朱 襴″ 焔 豕覿覲螳豌 朱 襴″ 焔 豕
覿覲螳豌 朱 襴″ 焔 豕
Hun Yong Song

More from Hong Hyo Sang (11)

Javascript
JavascriptJavascript
Javascript
Hong Hyo Sang
Java_10
Java_10 Java_10
Java_10
Hong Hyo Sang
Java_09 企企
Java_09 企企Java_09 企企
Java_09 企企
Hong Hyo Sang
Java_08 collection
Java_08 collectionJava_08 collection
Java_08 collection
Hong Hyo Sang
Java_07 襴 覃
Java_07 襴 覃Java_07 襴 覃
Java_07 襴 覃
Hong Hyo Sang
Java_03 一一
Java_03 一一Java_03 一一
Java_03 一一
Hong Hyo Sang
Java_06
Java_06 Java_06
Java_06
Hong Hyo Sang
Java_04
Java_04 Java_04
Java_04
Hong Hyo Sang
Java_02 覲仰襭
Java_02 覲仰襭Java_02 覲仰襭
Java_02 覲仰襭
Hong Hyo Sang
Java 危危蠍 貊
Java 危危蠍  貊 Java 危危蠍  貊
Java 危危蠍 貊
Hong Hyo Sang
語 螳 蠏碁9(Sig) 螳覦 豺
語 螳 蠏碁9(Sig) 螳覦 豺語 螳 蠏碁9(Sig) 螳覦 豺
語 螳 蠏碁9(Sig) 螳覦 豺
Hong Hyo Sang

Java_05 class

  • 1. JAVA CLASS & OBJECT 煙 : 企 : hyomee@naver.com : https://github.com/hyomee/JAVA_EDU 襦蠏碁 危危 貊襯 . る 蠑語覃 蟆所鍵 願鹸.
  • 2. Content : https://github.com/hyomee/JAVABASIC 5. Class & Object & Modifier 1. 螳豌伎ロ襦蠏碁(OOPL) 2. Class 3. Field 4. Method 5. Constructor 6. Package 7. 覦 伎
  • 3. 1. 螳豌伎 襦蠏碁 ( OOPL ) 5. Class & Object 螳豌:覈一危,螳豌伎(state)(behavior) 蟲豌危襦蠏碁覦企襦螳豌伎ロ襦蠏碁覦 朱Μ企,螳豌,覃,蟯螻覦鬺壱襦語るゼ語企襴貅伎り襯朱朱 螳豌伎ロ襦蠏碁覦語伎襦蠏碁覦蟲覓語危伎螳豌企ゼ蠍磯朱 一危一,,貂′,企れ焔鬴螳豌企ゼ蠍磯蓋螳豌伎リ鍵レ伎殊語. 螳豌 讌 襦蠏碁覦(OOP) 覈語 蠍磯朱 螻蠍 襦蠏碁覦 語 5-1. 螳豌伎 螳豌伎ロ襦蠏碁語(Object-Oriented Programming Language ) Class螳襷れ伎蟾? Data蟯 -谿語企碁朱覲旧″ Data襯 螻 覲 覯 蟲譟一 企 伎螳 谿 . 豌襴蟯 -谿朱豌襴蠍磯レ 襦蠏碁襦蠏碁企概 伎 襷覲 殊襭 -覲旧″伎 れ姶覦一危 襦るジ襭 -蟲譟郁覲旧″伎 伎螳 谿 貅 伎螳 谿 伎 レ 螳讌 伎螳 谿襯 讌 . Yes No 谿蠍磯リ骸 蠍磯レ 殊伎 るジ伎伎 る 谿 覓 觚危 危 覓語 企Π 貅讌 讌 讌 レ覓 谿 覓語 磯 危磯ゼ 覦 觚危襯 覦 覦 谿 貅 (key) 襦蠏碁 蠍一 讌
  • 4. 1. 螳豌伎 襦蠏碁 ( OOPL ) 5. Class & Object 貂′(Encapsulation )=覲伎 -襦蠏碁伎螳蠍磯レ覈朱焔貊襯朱るジ螻(Class ) 覲伎願蠍磯蟆 -Class 煙蠍郁(private ),螻糾(public ) (Inheritance )=+ -Class Class蟯螻 ( 覿覈 ) -Class覿覈Class 覦 蠍磯レ れ(polymorphism;启Μ覈殊)=ク - 螳豌願 螳讌 襯 螳讌 蟆. -る殊企( :Overriding ),る襦( 蠍磯ロ :Overloading ) 螳豌 讌 襦蠏碁覦(OOP) 覈語 蠍磯朱 螻蠍 襦蠏碁覦 語 5-1. 螳豌伎 OOP3 殊豺(Single Responsibility Principle) - 覈企る螳螳豈襷螳語狩. - 轟覈襦襷企る企豪語るジ蠍磯レ覃伎. 螳覦-豺(Open Closed Principle) - 企る レ 企 螻 伎 . - 蠍一ヾ 貊襯 覲蟆渚讌 朱伎 蠍磯レ 豢螳 襦 り 伎狩 襴れ豺豺(Liskov Substitution Principle) - 企る 語 覿覈 企るゼ 豌危 伎 - 企る 覿覈 企れ 豈 覓伎蟇磯 讌 螻 ル 襦 伎 . 誤壱伎る襴豺(Interface Segregation Principle) - 企る 讌 誤壱伎る 蟲讌 襷 . - 朱語誤壱伎る慨れ螳蟲豌伎語誤壱伎り 譟願螻豺(Dependency Inversion Principle) - 譟 蟯螻襯 襷碕 覲蠍 蟆 譯 覲 蟆覲企る 覲 蠍 企れ 蟆, 蟇一 覲螳 蟆 譟危伎 . - 蟲豌伎 企る慨る 誤壱伎る 豢 企れ 蟯螻襯 襷碕伎 . OOP5豺(SOLID)
  • 5. 1. Class 5. Class & Object Class :-覿襯譬襯手譬覈 Instance :蟲豌伎瑚(Class煙襦螳豌企ゼ襷螻殊:Instance ) 螳豌 讌レ 螳 蠍磯蓋 蟲譟磯 Class, 燕 襦 Instance 5-2. Class Class Class :-朱Class, 豢 Class Interface 覓碁 Class Class Abstract Class Interface Class 蟲譟 package . import . class 企る { } public class 企る { int member = 5; // public 企る (襷り覲) { } // 煙 public 襭 覃覈(襷り覲) { .. } // 覃 class 企企る { . } // innerClass } 企 碁 蟲 企 企 蟲 Class 蟲譟 る 碁 蟲 - package :覦Class 襯朱襴 - import :るジpackage襯殊伎狩 - class :external class襦public襯狩れ襯朱殊 企 蟲 - field : Class , Class企 覲 - constructor :螳豌企ゼ燕企. 牛覃願鍵覲語煙蟾 - method :Class螳 螳讌螻 蠍磯() - innerClass :Class企 Class
  • 6. 1. Class 5. Class & Object 5-2. Class 螳豌(Class ) 螳豌(Object ) 覲覃襯殊襦 Field(襷企覲:螳豌伎) +Operation(Method:螳豌伎) 企れ企覓語襦,れ伎覓語 襭,螳豌伎襭 (Sample sample = new Sample() ) Class れ襦,朱Μ瑚豌,覯襷 語れ :public -蠏殊螳襷豌, :abstract -豢企るゼ :final -伎朱讌覈, :ClassName -企れ企 :extends -る企るゼ, :implements -誤壱伎り規) 豐蠍壱 :覃覈襴覯豐蠍壱 -覈企る(static 覲)螳吴瑚朱豐蠍壱 newれ伎襷れ伎覃,企れ語ろ伎,覓朱Μ瑚豌 襷れ typeClass碁 螳豌伎企覓語襦,れ伎覓語
  • 7. 2. 谿 襦蠏碁 蟲譟一 谿伎 5. Class & Object 5-2. Class 襦蠏碁 蟲譟一 谿 谿 襦蠏碁 x ( 觚襭 ) 覲 a 覲 b 螳豌伎 襦蠏碁 Class A 語ろ伎 覲 讌 覲 x ( 觚襭 ) 讌 覲 x ( 觚襭 ) 讌 覲 x ( 觚襭 ) 讌 覲 覃 x 讌 覲 覃 x 讌 覲 Class B 語ろ伎 覲 覃 x 讌 覲 覃 x 讌 覲 蠏 讌 殊 蠏 螳 * Class B 螳豌 螳 * 碁 static 覦襦 蠏 螳 Class煙襦螳豌企ゼ襷螻殊 -> 語ろ伎ろ 語ろ伎 Class
  • 8. 3. Instance 5. Class & Object 5-2. Class 螳豌 企(Class )煙襦螳豌(Object )襯朱螻殊語ろ伎ろ(Instantiation )企狩覃一願骸襷れ伎螳豌企ゼ語ろ伎( Instance )螳豌企狩 螳豌伎 企る 谿語^覲覈 = new 煙(); 覃覈襴蟲譟 語ろ伎 覃 stack heap 100 Method Field Inner Class Method Heap object Stack 覲 100 覯讌 企 A a1 = new A(); A a2 = new A(); 100 200 Object A 100 覯讌 200 覯讌 Object B A fun class A { void fun(); } 語ろ伎 覃 stack heap a1 a2
  • 9. 1. Field 5. Class & Object 5-3. Field Field 語ろ伎る(or覃る覲):企(Class )覲襦企れ覈螻褐蠏手ロ->企れ覲 讌覲:覃(Method )覲襦企豪襷 Field private 襭 覲企 [ = 豐蠍郁 ] 覃覈襴 蟲譟 語ろ伎る螳豌伎(heap) 讌覲stack 100 100 覯讌 覃 stack heap 語ろ伎る豐蠍郁願れ Variable 'localNum' might not have been initialized 讌覲stackル覩襦豐蠍壱朱伎る覦 20 num num01 Object Instance sum pNum
  • 10. 1. Method 5. Class & Object 5-4. Method Method 企れ蠍磯モOperation Method 覦伎 覦Type Method覈( 襷り覲 ) { ろ 覓 ; [ return 螳 ] // 覦 type void 企 } 覦伎 覃 る襦 ( Method Overloading ) 蠏殊 : 蠏手ル -public, private, default, protected static : - 企れ 覃る(, 覃, 企 企) - 覃る ( Static Member ) - 螳豌 螳豌企.覃る覈朱 final : 覿覲 螳 - , 讌覲, 覃, 企 豺 覃 螳 覩瑚 襴 abstract : - 蠍磯レ 讌 豢 蟆 覦 螻褐 蟲 - 豢 覃(abstract method ), 豢 企 ( abstract class ) 覃 蠏碁豌 ( Method signature ) -覃覈螻殊ルГ螳覲襦JVM覃覈螳一ルГ螳覲螳 螳襴覃企るゴ蟆語蟆伎蟆朱願覃 る襦 ( Method Overloading )企 螳覲 襷り 覲 覦一伎 襷り覲螻 覃, 螳 螳 襦 " 襷り覲 : 襷り 覲襦 覲旧 蟆曙 , 襦 蟲覿 襭(Type) 襷り覲企 [ , 襭(Type) 襷り覲企 , ] 覦Type Method覈( 襭 谿語^覲覈 ) { ろ 覓 ; [ return 螳 ] // 覦 type void 企 } 蠏 讌 蠏() 螳 覯 public れ 覈 覃 + るジ れ 覈 企 protected れ 覈 覃 + るジ れ 企 default ( or package ) れ 覈 覃 ( 蠏 讌 螳 ) private 企
  • 11. 2. 覃 る襦 ( Method Overloading ) 5. Class & Object 5-4. Method 覃 る襦 ( Method Overloading ) 覃覈螻殊ルГ螳覲襦JVM覃覈螳一ルГ螳覲螳螳襴覃企るゴ蟆語蟆伎蟆 覦 覃覈( 襭 覲覈, 襭 覲覈, .. ){ } Method signature
  • 12. 3. 螳覲 襷り 覲 5. Class & Object 5-4. Method 螳覲 襷り 覲 ( Variable Argument ) MethodOverloading伎覃企Г螳覲螳襯手襷れ伎蠏豪概蠍一 殊襭朱襷り覲螳襯朱朱讌伎蠍磯 襷り覲覦一企語 覦 覃覈( 襭 谿語^覲覈 ){ }
  • 13. 1. Constructor 5. Class & Object 5-5. Constructor 煙 Constructor 螳豌企ゼ燕蠍磯レ朱2螳讌覓碁蠏豺伎. 覦企る螻朱狩伎狩螻覦伎伎狩. 企れ炎螳蟆曙一惨朱螳ルГ螳覲螳蠍磯蓋煙襯殊螳伎. MethodOverloading襷り覲襯手讌. 蠏殊 企る( 襷り覲s ) { } 蠍磯蓋煙 : 企る() {}
  • 14. 2. this() 5. Class & Object 5-5. Constructor This() 企る伎るジ煙襯狩語,煙企豌覯讌語伎狩, 企る伎覃る覲襯殊宛譟壱蟆曙磯this.
  • 15. 1. Inner Class 5. Class & Object 5-6. Inner Class Inner Class 企る企企るゼ覩誤. 企るる:語ろ伎るる企企, 覃る 企企 讌覲:讌企企る 朱 語ろ伎 覃る 企 企 (1) (2) (3) (4) (5)
  • 16. 1. Package 5. Class & Object 5-7. Package Package 觜訣覈朱焔 企ろ殊覈启 - 覓朱Μ朱磯Μ襯殊覩 れ企る誤壱伎ろ殊覈企麹れ企 磯Μ れるジれ襯狩朱,企磯Μ螻豸糾規譟磯(.)朱蟲覿 襦 蟯 企る 誤壱伎るゼ 蟷 覓苦, 企れ 誤壱伎れ 讌 package れ企 Import 覦貉危朱貊企れれ覲企ゼ覩碁Μ螻牛 - import覓語覃企るジれ企るゼれ企誤企れ 襴襷朱 語覲(*)覩碁れ覈PackageClass蟾讌 譯朱蟆 伎 - 企麹启Class伎襷企襷朱螳ロる覩 import れ企.企れ企; import れ企.*; package : import るジ Package : Full Package Class 覈 るジ Package : * : Class 企襷
  • 17. 1. 覦 伎 蠏殊 : 蠏手ル -public, private, default, protected static : - 企れ 覃る(, 覃, 企 企) - 覃る ( Static Member ) - 螳豌 螳豌企.覃る覈朱 final : 覿覲 螳 - , 讌覲, 覃, 企 豺 覃 螳 覩瑚 襴 abstract : - 蠍磯レ 讌 豢 蟆 覦 螻褐 蟲 - 豢 覃(abstract method ), 豢 企 ( abstract class ) 蠏 讌 蠏() 螳 覯 public れ 覈 覃 + るジ れ 覈 企 protected れ 覈 覃 + るジ れ 企 default ( or package ) れ 覈 覃 ( 蠏 讌 螳 ) private 企 9. Modifier 9-1. Modifier 覦 伎 企 : public, default, final, abstract 覃 : public, protected, default, private, final, abstract, static 覃る覲 : public, protected, default, private, final, static 讌覲 : final 螳ロ 伎 覃 static螻 abstract襯 蟷 . 企れ abstract final . abstract覃 蠏 伎螳 private . 覃 private final 螳 . 譯殊 蠏殊伎(access modifier)
  • 18. 1. 蠏殊 5. Class & Object 5-6. 覦 伎 蠏 讌 覃る,煙,覃襯殊蠏狩蠍一讌襦誤讌 磯殊蠏朱螳蟆一. X X X 蠏 讌 蠏() 螳 覯 public れ 覈 覃 + るジ れ 覈 企 protected れ 覈 覃 + るジ れ 企 default ( or package ) れ 覈 覃 ( 蠏 讌 ) private 企
  • 19. 2. static 5. Class & Object 5-6. 覦 伎 static Field 企れ覃る(,覃,企企) 覃る(StaticMember) 螳豌伎煙癌螳豌企.覃る覈朱 覃 stack heap num : 10 100 vNum :1 staticMember ( instance ) 100 覯讌 StaticMember ( Class ) static JVM 覃覈襴 Method Stack Heap Class Static Final Static Member (覲)語ろ伎り豌企 螳螳煙企企螳螻旧. 覃 stack heap StaticMember sraticNum : 5 staticMember01 : 100 staticMember02 : 200 vNum :1 vNum :2 staticMember staticMember
  • 20. 2. static 5. Class & Object 5-7. 覦 伎 static Method 覃(StaticMember),螳豌伎煙癌螳豌企.Method()朱 語ろ伎る覿螳,覃企螳豌企ゼ燕蟆曙磯螳豌伎語ろ伎る螳 覃 stack heap staticMethod : 100 num : 1 mnum :10 snum 語ろ伎 instanceMethod() Static staticMethod() snum 10
  • 21. 2. static 5. Class & Object 5-7. 覦 伎 static 豐蠍壱 觚 螳豌伎煙伎static field豐蠍壱讌.(覈磯瑚骸豐蠍壱蟆曙一) static觚襦豐蠍壱.->覃覈襴Class螳襦螳ル┝ろ Referencevariable麹讌襷覲蟆所ロ.
  • 22. 3. final 5. Class & Object 5-7. 覦 伎 final Field, Local Variable, Method, Class 豺覃,螳螳覩瑚襴. Field, Local Variable 豐蠍壱襯 . 豺 覩 Local Variable 螳 覲蟆 覿螳 Field 螳 覲蟆 覿螳 Method Override 覿螳 Class 覿螳 Field, Local Variable れ伎
  • 23. 3. final 5. Class & Object 5-7. 覦 伎 final final Method X final Class
  • 24. 4. abstract 5. Class & Object 5-7. 覦 伎 abstract 覩呉豢呉朱豢覃( Abstract Method )豢企( Abstract Class )螳 . 豢覃( Abstract Method ): Method 襷 螻 蠍磯レ 覩語 Method襦 覦 螳豌伎 蠍磯 蟲 蟆朱 碁語襦( ; ) 豢企( Abstract Class ) : 伎 豢覃( Abstract Method )螳伎 Class襦 new 襦 讌 螻 牛伎 襷 螳 覦覯 : abstract 襭 覃覈(); 覩語 貊 貊