Javaインタフェース


インタフェースコンセプト


インタフェースの概念といえば,ユーザが同じ目的で同じ機能を実行させることがインタフェースの役割である.
簡単に言えば、あらかじめ用意されたテンプレートですか?
たとえば、会社に履歴書を提出するには、フリーフォームの履歴書を見て、評価を一致させることはできません.
したがって,各社が履歴書フォームを統一的に作成して使用する概念と考えられる.

インタフェースの実装方法


コードを例にとると
  • Mainclass.class
  • のホームページでは、a b c Phoneのオブジェクトを読み込んで印刷する役割を果たしています.
  • 
    package com.javalec.base;
    
    public class MainClass {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		SmartPhone aPhone = new APhone();
    		SmartPhone bPhone = new BPhone();
    		SmartPhone cPhone = new CPhone();
    		SmartPhone[] smartPhones = {aPhone, bPhone, cPhone};
    		for (int i = 0; i < smartPhones.length; i++) {
    			smartPhones[i].callSenderReceiver();
    			smartPhones[i].telMethod();
    			smartPhones[i].tvRemoteController();
    			System.out.println("---------------------");
    		}
    	}
    
    }
  • Interface
  • ここでは重要で、インタフェースを事前に作成しておき、APHONE BPHONE CPHONEクラスが実現できるようになりました.
  • package com.javalec.base;
    
    public interface SmartPhone {
    	public void callSenderReceiver();
    	public void telMethod(); 
    	public void tvRemoteController(); 
    }
    
    インタフェース受信の次の3つのクラスから,2行目にimplementsを介してインタフェースを受信することが分かる.
    また,各メソッドに@Overrideと書かれており,これはインタフェース上のメソッドを用いた宣言を意味する.
    (利点は不要)
  • APhone.class
  • package com.javalec.base;
    
    public class APhone implements SmartPhone {
    	public APhone() {
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void callSenderReceiver() {
    		System.out.println("A phone : possible");
    
    	}
    
    	@Override
    	public void telMethod() {
    		System.out.println("A phone : 3G");
    	}
    
    	@Override
    	public void tvRemoteController() {
    		System.out.println("A phone : Not Applied");
    
    	}
    
    
    }
    
  • BPhone.class
  • package com.javalec.base;
    
    public class BPhone implements SmartPhone {
    
    	public BPhone() {
    		// TODO Auto-generated constructor stub
    	}
    	@Override
    	public void callSenderReceiver() {
    		System.out.println("B phone : possible");
    
    	}
    
    	@Override
    	public void telMethod() {
    		System.out.println("B phone : 4G");
    	}
    
    	@Override
    	public void tvRemoteController() {
    		System.out.println("B phone : Applied");
    
    	}
        }
  • CPhone.class
  • package com.javalec.base;
    
    public class CPhone implements SmartPhone {
    	public CPhone() {
    		// TODO Auto-generated constructor stub
    	}
    	@Override
    	public void callSenderReceiver() {
    		System.out.println("C phone : possible");
    
    	}
    
    	@Override
    	public void telMethod() {
    		System.out.println("C phone : 4G");
    	}
    
    	@Override
    	public void tvRemoteController() {
    		System.out.println("C phone : Not Applied");
    
    	}
    
    }

    結果



    InterfaceはAndroidスタジオでよく使われています(AndroidのEmpty ActivityもImplementから).
    Javaをするには基本的なインタフェースを理解したほうがいいです.