オブジェクト向け(3):コードブロック;クラスの継承(フォーマット、利害、特徴、注意、superキーワード、継承中の構築方法関係、方法書き換え);finalキーワード


文書ディレクトリ
  • オブジェクト向け(3)
  • 一、コードブロック
  • 1、コードブロックの概要及び分類
  • 2、例題:プログラムを見て結果を書く
  • 二、クラスの継承
  • 1、概要およびフォーマット
  • 2、相続の利害
  • 3、継承の特徴
  • 例:
  • 4、引継ぎの注意事項
  • 5、superキーワード
  • 6、継承中の構築方法の関係
  • 例:
  • 7、方法書き換えの概要及び応用
  • 例:
  • 注意事項:
  • 三、finalキーワード
  • 1、finalキーワードの概要と特徴
  • 2、例:
  • オブジェクト向け(三)
    一、コードブロック
    1、コードブロックの概要と分類
    A:     : Java ,  {}            。
    B:         :
    	a:     :      ,      ,    ,       ;
    	b:     :        ,                  ,              ,          ;
    	c:     :        ,  static  ,         ,         ,      ;
    	d:     
    

    2、例題:プログラムを見て結果を書く
    	class Student {
    		static {
    			System.out.println("Student      "); //3
    		}
    		
    		{
    			System.out.println("Student      "); //4  // 6
    		}
    		
    		public Student() {
    			System.out.println("Student     "); //5 //7
    		}
    	}
    
    public class StudentDemo {
    		static {
    			System.out.println("StudentDemo      "); //1 
    		}
    		
    		public static void main(String[] args) {
    			System.out.println("  main  "); // 2  
    			
    			Student s1 = new Student();
    			Student s2 = new Student();
    		}
    	}
      :
    StudentDemo      
      main  
    Student      
    Student      
    Student     
    Student      
    Student     
    

    二、クラスの継承
    1、概要と書式
        :              ,              ,                 ,         。
        :  extends           
    		class     extends    {}
    

    2、相続のメリットとデメリット
         :
    	a:         ;
    	b:         ;
    	c:           ,      
         :
    	        (        )
    

    3、継承の特徴
    Java       
    	a:Java      ,      ;
    	b:Java      (    )
    

    例:
    //    
    class  Animal{
        String name;    //      
        //        
        void Shout(){
            System.out.println("       ");
        }
    }
    //    
    //1、       ,      ,            
    //2、           
    /*
    * class A{}
    * class B extends A{}
    * class C extends A{}
    * */
    //3、       ,                      
    //             ,  :B A   , C   
    /*
    * class A {}
    * class B extends A{}
    * class C extends B{}
    * */
    //    
    class Subclass extends Animal{
        //           
        void printname(){
            System.out.println("name="+name);
        }
    }
    public class MyDemo4_1 {
        public static void main(String[] args) {
            Subclass subclass = new Subclass();
            subclass.name="  ";
            subclass.printname();
            subclass.Shout();
        }
    }
        :
    name=  
           
    
    Process finished with exit code 0
    

    4、相続の注意事項
           
    	a:                (         );
    	b:             ,      super            ;
    	c:            
    

    5、superキーワード
      :super             (          ,         )
        :
    	a:      
    		super.     	//         
    	b:      
    		super(...)		//         
    	c:      
    		super.     	//         
    

    6、継承中の構築方法の関係
    	                          ,             ,           ,          ,              。
    

    例:
    public class MyDemo4_1_3 {
        public static void main(String[] args) {
            //super   
            //1、  super                 
            /* super.    
            *  super.    (  1,  2...)
            * */
            Dog1 dog1 = new Dog1();
            dog1.shout();
            dog1.printName();
            System.out.println("************************");
            //2、  super            
            //super(  1、  2...);
            new Dog1();
        }
    }
    class Animal1{
        String name="  ";
        //        
        void shout(){
            System.out.println("     ");
        }
        //  Animal1      
        public Animal1(String name){
            System.out.println("    "+name);
        }
    }
    //  Dog1      
    class Dog1 extends Animal1{
        String name=" ";
        //    shout()  
        void shout(){
            super.shout();  //        
        }
        public Dog1(){
            //  :  super                          ,       
            //                     (         ),              
            //           ,                    ,                
            super("   ");   //          
        }
        void printName(){
            System.out.println("name="+super.name);//        
        }
    }
        :
           
         
    name=  
    ************************
           
    
    Process finished with exit code 0
    

    7、方法書き換えの概要と応用
      :                   (   ,    ,     ),        ,    。
      :          ,               ,          。
    	  ,         ,           。
    

    例:
    //  Animal2 
    class Animal2{
        void shout(){
            System.out.println("     ");
        }
    }
    //  Dog      
    class Dog extends Animal2{
        //       ,  :                  、    、     
        public void shout(){   //         ,                     
            System.out.println("   ");
        }
    }
    public class MyDemo4_1_2 {
        public static void main(String[] args) {
            new Dog().shout();
        }
    }
        :
       
    
    Process finished with exit code 0
    

    注意事項:
            
    	a:            ,
    		                 ;
    	b:         ,        (    );
    	c:      ,               
    

    三、finalキーワード
    1、finalキーワードの概要と特徴
      :final         ,     ,  ,    
    final    :
    	   :          ;
    	    :           ;
    	    :      (         )   ,      ,
    			        ,            ,
    			        :
    				    ,       ;
    				    ,         。
    

    2、例:
    final class Fu{}
    // class zi extends Fu{}    //  ! final         
    class Fu1{
        public final void show(){
            System.out.println(" final     ");
        }
    }
    class Zi extends Fu1{
        //  ! final         
       /* public final void show(){
            System.out.println("    ");
        }*/
    }
    public class Example01 {
        public static void main(String[] args) {
            final int NUM=3;    //      ,              
            //NUM=10;  //  ,      
            Zi zi = new Zi();
            Zi zi1 = new Zi();
            final Zi dz=zi;
            //dz=zi1;   //  ! final         ,         
        }
    }