SlideShare a Scribd company logo
1 of 24
JAVA STUDY chapter17 abstract 와  interface  그리고  inner class 2011. 10. 9 이진아
추상클래스  abstract ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],/24
추상클래스  abstract /24 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],추상클래스의 조건 1.  클래스에  abstract  선언 2.  추상메소드 ( 불완전한 메소드 ) 가 있으면 반드시 메소드와 클래스 모두  abstract  선언해야 함
추상클래스  abstract ,[object Object],/24 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
인터페이스  interface ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],/24
인터페이스  interface /24 인터페이스 조건 1. class  대신에  interface 2. extends  대신에  implements 3.  추상메소드를 반드시 오버라이딩  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
인터페이스  interface /24 인터페이스 특징 1.  다중 상속 효과  (1)  public  interface  InterfaceA{ void inteMethodA(); } public  interface  InterfaceB{ void inteMethodB(); } class ClassB  implements  InterfaceA, InterfaceB { public void  inteMethodA() { System.out.println(" 안녕하세요 ");} inteMethodB() { System.out.println(" 안녕히가세요 ");} }
인터페이스  interface /24 인터페이스 특징 1.  다중 상속 효과  (2)  public  interface  InterfaceA{ void inteMethodA(); } abstract Class ClassA{ public abstract void claMethodA(); } class ClassB  extends  ClassA  implements  InterfaceA { puvlic void  inteMethodA() { System.out.println(" 안녕하세요 ");} public void claMethodA() { System.out.println(" 안녕히가세요 ");} }
인터페이스  interface /24 인터페이스 특징 2.  상수 표현 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
인터페이스  interface /24 인터페이스 특징 3.  클래스의 정의에 약속된 형태를 표시 ( 예 ,  대문자표시 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
추상클래스 도식 /24
인터페이스 도식 /24
추상클래스와 인터페이스 ,[object Object],[object Object],[object Object],[object Object],[object Object],/24
Inner  클래스 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],/24
Inner  클래스 /24 Inner  클래스 특징 1.  Outer  클래스 인스턴스 생성 후에  Inner  클래스 인스턴스 생성 가능 class OuterClass{ class InnerClass{ InnerClass(){System.out.println(" 이너 클래스 ");} } } .... OuterClass out = new OuterClass(); OuterClass.InnerClass inn = out.new InnerClass(); inn.InnerClass();
Inner  클래스 /24 Inner  클래스 특징 2.  Inner  클래스 내에서는  Outer  클래스 멤버에 직접 접근 가능 class OuterClass{ int outNum=10; class InnerClass{ InnerClass(){ System.out.println("outer  클래스  : "+ outNum );} } } }
Inner  클래스 /24 Inner  클래스 특징 3.  Inner  클래스 인스턴스는 자신이 속할  Outer 클래스 인스턴스를 기반으로 생성 class OuterClass{ class InnerClass{ InnerClass(){System.out.println(" 이너 클래스 ");} } } .... OuterClass  out1  = new OuterClass(); OuterClass  out2  = new OuterClass(); OuterClass.InnerClass  inn1  =  out1 .new InnerClass(); OuterClass.InnerClass  inn2  =  out1 .new InnerClass(); OuterClass.InnerClass  inn3  =  out2 .new InnerClass();
지역 (Local)  클래스 ,[object Object],[object Object],[object Object],[object Object],[object Object],/24
지역 (Local)  클래스 /24 Local  클래스 특징 인터페이스와 함께 정의 public  interface  Readable{ public void  read(); } class OuterClass{ public Readable createLocalClassInst(){ class LocalClass implements Readble{ public void  read() {System.out.println(" 지역 클래스다 !");} } return new LocalClass; } .... OuterClass out new OuterClass(); Readable localInst=out.createLocalClassInst(); loclInst. read();
지역 (Local)  클래스 /24 Local  클래스 특징 final 로 정의된 매개변수와 지역변수에 접근 public interface Readable{ public void read(); } class OuterClass{ public Readable createLocalClassInst( final int istID ){ class LocalClass implements Readble{ public void read() {System.out.println( instID );} } return new LocalClass;} .... OuterClass out new OuterClass(); Readable localInst=out.createLocalClassInst( 1234 ); loclInst.read();
익명 (Anonymous)  클래스 ,[object Object],[object Object],[object Object],/24
익명 (Anonymous)  클래스 /24 Anonymous  클래스 생성 return new Readable(){  }; Readable read = new Readable() public  interface Readable { public void read(); } class OuterClass{ public Readable createLocalClassInst(final int istID){ return new Readable(){ public void read() {System.out.println(instID);} }; } }
생각해보고 싶은 점 ,[object Object],[object Object],[object Object],[object Object],[object Object],/24
참고자료 ,[object Object],[object Object],/24

More Related Content

Viewers also liked

Fontana di trevi apresentação1
Fontana di trevi apresentação1Fontana di trevi apresentação1
Fontana di trevi apresentação1
Mad Mary
 
Grupo2_9ºA
Grupo2_9ºAGrupo2_9ºA
Grupo2_9ºA
berenvaz
 
Somebody That I Used To Kknow
Somebody That I Used To KknowSomebody That I Used To Kknow
Somebody That I Used To Kknow
MARMOSM
 
MORRIS MILLER RESUME
MORRIS MILLER RESUMEMORRIS MILLER RESUME
MORRIS MILLER RESUME
Morris Miller
 
Healthy & Happy Living Leadership Program
Healthy & Happy Living Leadership ProgramHealthy & Happy Living Leadership Program
Healthy & Happy Living Leadership Program
Leah Ripp
 
Grupo2_9ºB
Grupo2_9ºBGrupo2_9ºB
Grupo2_9ºB
berenvaz
 

Viewers also liked (14)

Fontana di trevi apresentação1
Fontana di trevi apresentação1Fontana di trevi apresentação1
Fontana di trevi apresentação1
 
Live healthy.live organik.
Live healthy.live organik.Live healthy.live organik.
Live healthy.live organik.
 
Grupo2_9ºA
Grupo2_9ºAGrupo2_9ºA
Grupo2_9ºA
 
Somebody That I Used To Kknow
Somebody That I Used To KknowSomebody That I Used To Kknow
Somebody That I Used To Kknow
 
Nas fronteiras da locura dos dois mundos
Nas fronteiras da locura dos dois mundosNas fronteiras da locura dos dois mundos
Nas fronteiras da locura dos dois mundos
 
MORRIS MILLER RESUME
MORRIS MILLER RESUMEMORRIS MILLER RESUME
MORRIS MILLER RESUME
 
Healthy & Happy Living Leadership Program
Healthy & Happy Living Leadership ProgramHealthy & Happy Living Leadership Program
Healthy & Happy Living Leadership Program
 
Presentación2
Presentación2Presentación2
Presentación2
 
Redes
RedesRedes
Redes
 
Grupo2_9ºB
Grupo2_9ºBGrupo2_9ºB
Grupo2_9ºB
 
Si de acuerdo
Si de acuerdoSi de acuerdo
Si de acuerdo
 
ENCOAD 2015 - O Jovem Administrador e o Empreendedorismo.
ENCOAD 2015 - O Jovem Administrador e o Empreendedorismo.ENCOAD 2015 - O Jovem Administrador e o Empreendedorismo.
ENCOAD 2015 - O Jovem Administrador e o Empreendedorismo.
 
La administracion
La administracionLa administracion
La administracion
 
Clarion Capabilities Overview
Clarion Capabilities OverviewClarion Capabilities Overview
Clarion Capabilities Overview
 

Similar to 자바스터디(6기) 4

Design patterns
Design patternsDesign patterns
Design patterns
df
 
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
Sangmin Lee
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
Ryan Park
 
Api design for c++ 6장
Api design for c++ 6장Api design for c++ 6장
Api design for c++ 6장
Ji Hun Kim
 
[아꿈사] The C++ Programming Language 11장 연산자 오버로딩
[아꿈사] The C++ Programming Language 11장 연산자 오버로딩[아꿈사] The C++ Programming Language 11장 연산자 오버로딩
[아꿈사] The C++ Programming Language 11장 연산자 오버로딩
해강
 
Java reflection & introspection_SYS4U I&C
Java reflection & introspection_SYS4U I&CJava reflection & introspection_SYS4U I&C
Java reflection & introspection_SYS4U I&C
sys4u
 

Similar to 자바스터디(6기) 4 (20)

Java(2/4)
Java(2/4)Java(2/4)
Java(2/4)
 
일단 시작하는 코틀린
일단 시작하는 코틀린일단 시작하는 코틀린
일단 시작하는 코틀린
 
Ai C#세미나
Ai C#세미나Ai C#세미나
Ai C#세미나
 
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
 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11
 
Interpreter
InterpreterInterpreter
Interpreter
 
Design patterns
Design patternsDesign patterns
Design patterns
 
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
 
자바스터디(6기) 3
자바스터디(6기) 3자바스터디(6기) 3
자바스터디(6기) 3
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
 
Api design for c++ 6장
Api design for c++ 6장Api design for c++ 6장
Api design for c++ 6장
 
[아꿈사] The C++ Programming Language 11장 연산자 오버로딩
[아꿈사] The C++ Programming Language 11장 연산자 오버로딩[아꿈사] The C++ Programming Language 11장 연산자 오버로딩
[아꿈사] The C++ Programming Language 11장 연산자 오버로딩
 
Java reflection & introspection_SYS4U I&C
Java reflection & introspection_SYS4U I&CJava reflection & introspection_SYS4U I&C
Java reflection & introspection_SYS4U I&C
 
Java Annotation과 MyBatis로 나만의 ORM Framework을 만들어보자
Java Annotation과 MyBatis로 나만의 ORM Framework을 만들어보자Java Annotation과 MyBatis로 나만의 ORM Framework을 만들어보자
Java Annotation과 MyBatis로 나만의 ORM Framework을 만들어보자
 
Sonarqube 20160509
Sonarqube 20160509Sonarqube 20160509
Sonarqube 20160509
 
Eclipse RCP 1/2
Eclipse RCP 1/2Eclipse RCP 1/2
Eclipse RCP 1/2
 
Java mentoring of samsung scsc 2
Java mentoring of samsung scsc   2Java mentoring of samsung scsc   2
Java mentoring of samsung scsc 2
 
Java(3/4)
Java(3/4)Java(3/4)
Java(3/4)
 
[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
 

Recently uploaded

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 

Recently uploaded (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

자바스터디(6기) 4

  • 1. JAVA STUDY chapter17 abstract 와 interface 그리고 inner class 2011. 10. 9 이진아
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. 인터페이스 interface /24 인터페이스 특징 1. 다중 상속 효과 (1) public interface InterfaceA{ void inteMethodA(); } public interface InterfaceB{ void inteMethodB(); } class ClassB implements InterfaceA, InterfaceB { public void inteMethodA() { System.out.println(" 안녕하세요 ");} inteMethodB() { System.out.println(" 안녕히가세요 ");} }
  • 8. 인터페이스 interface /24 인터페이스 특징 1. 다중 상속 효과 (2) public interface InterfaceA{ void inteMethodA(); } abstract Class ClassA{ public abstract void claMethodA(); } class ClassB extends ClassA implements InterfaceA { puvlic void inteMethodA() { System.out.println(" 안녕하세요 ");} public void claMethodA() { System.out.println(" 안녕히가세요 ");} }
  • 9.
  • 10.
  • 13.
  • 14.
  • 15. Inner 클래스 /24 Inner 클래스 특징 1. Outer 클래스 인스턴스 생성 후에 Inner 클래스 인스턴스 생성 가능 class OuterClass{ class InnerClass{ InnerClass(){System.out.println(" 이너 클래스 ");} } } .... OuterClass out = new OuterClass(); OuterClass.InnerClass inn = out.new InnerClass(); inn.InnerClass();
  • 16. Inner 클래스 /24 Inner 클래스 특징 2. Inner 클래스 내에서는 Outer 클래스 멤버에 직접 접근 가능 class OuterClass{ int outNum=10; class InnerClass{ InnerClass(){ System.out.println("outer 클래스 : "+ outNum );} } } }
  • 17. Inner 클래스 /24 Inner 클래스 특징 3. Inner 클래스 인스턴스는 자신이 속할 Outer 클래스 인스턴스를 기반으로 생성 class OuterClass{ class InnerClass{ InnerClass(){System.out.println(" 이너 클래스 ");} } } .... OuterClass out1 = new OuterClass(); OuterClass out2 = new OuterClass(); OuterClass.InnerClass inn1 = out1 .new InnerClass(); OuterClass.InnerClass inn2 = out1 .new InnerClass(); OuterClass.InnerClass inn3 = out2 .new InnerClass();
  • 18.
  • 19. 지역 (Local) 클래스 /24 Local 클래스 특징 인터페이스와 함께 정의 public interface Readable{ public void read(); } class OuterClass{ public Readable createLocalClassInst(){ class LocalClass implements Readble{ public void read() {System.out.println(" 지역 클래스다 !");} } return new LocalClass; } .... OuterClass out new OuterClass(); Readable localInst=out.createLocalClassInst(); loclInst. read();
  • 20. 지역 (Local) 클래스 /24 Local 클래스 특징 final 로 정의된 매개변수와 지역변수에 접근 public interface Readable{ public void read(); } class OuterClass{ public Readable createLocalClassInst( final int istID ){ class LocalClass implements Readble{ public void read() {System.out.println( instID );} } return new LocalClass;} .... OuterClass out new OuterClass(); Readable localInst=out.createLocalClassInst( 1234 ); loclInst.read();
  • 21.
  • 22. 익명 (Anonymous) 클래스 /24 Anonymous 클래스 생성 return new Readable(){ }; Readable read = new Readable() public interface Readable { public void read(); } class OuterClass{ public Readable createLocalClassInst(final int istID){ return new Readable(){ public void read() {System.out.println(instID);} }; } }
  • 23.
  • 24.