対象に向けて広がる

7628 ワード

static修饰符
  • staticで修飾されたフィールドと方法は直接クラスに属し、このクラスのオブジェクトではない(フィールドと方法は誰に属していますか?誰が呼び出しますか?)
  • staticで修飾されたメンバーはクラスに属しています.直接クラス名で呼んでください.
  • staticメソッドで修飾されていないメンバーはオブジェクトに属し、まずオブジェクトを作成してから
  • を呼び出す必要があります.
  • 一般的に、static方法でアクセスするメンバー変数は、static修飾
  • を使用しなければならない.
  • staticメソッドはsuperとthisを使用できません.staticはクラスのレベルです.superとthisは対象レベルです.クラスがあるときは対象が存在しないとは限りません.つまりstaticメソッドを呼び出すときは対象がないかもしれません.
    public class StaticDemo {
    	int age = 10;	//        
    	
    	public static void main(Strings[] args) {	//     
    		System.out.println(age);	//         ,  
    	}
    }
    
    final修飾子
    1.final修飾の種類は引き継がれません.2.final修飾の方法は書き換えられません.3.final修飾の変数の値は変えられません.つまり定数です.一回だけ与えられます.再割り当てはできません.参照データの種類は、参照先の値が変更できないことを示しています.
    コードブロック
  • 静的コードブロック:staticによって修正されたコードブロックは、バイトコードファイルがJVM仮想マシンにロードされると実行が開始され、プログラムで最初に実行されるコードブロックとも言える.リソースローディング、プロファイルローディングなどの動作を行うためによく使われる.
  • 部分コードブロック:直接的に方法内部のコードブロックを定義し、通常は直接的にローカルコードブロックを使用せず、if、for、whileなどのキーワードに接続して使用し、コードエリア
  • を表します.
  • 初期化コードブロック:構造コードブロックともいい、直接クラスに定義されています.オブジェクトを作成するたびに実行されるコードブロックは、開発中に単独では使用されません.使用するにしても、構築器に
  • を使用します.
    public class Demo() {
    	//      
    	static {
    		System.out.println("       ,     ");
    	}
    
    	//       
    	public Demo() {
    		System.out.println("        ,      ");
    	}
    
    	public void speak() {
    		if(true) {
    			System.out.println("       ,      ,  if     ");
    		}
    	}
    
    }
    
    内部類:一つの種類を別の種類の内部に定義し、中の種類を内部類と呼びます.
  • 静的内部クラス:static修飾の内部クラスを使用すると、内部クラスに直接にアクセスし、外部クラス名を使用して
  • にアクセスする.
  • 例の内部クラス:static修飾を使用していない内部クラスで、アクセス時に外部クラスで作成されたオブジェクトを使用して
  • にアクセスする.
  • 部分内部クラス:方法における内部クラスを定義する
  • 匿名の内部クラス:特殊な内部クラス、作成されたオブジェクトは一回だけ
  • を使用することができます.
    /*
    	       :
    	    
    	new       (    ) {
    		        ;
    	}
    	      
    	new     () {
    		        ;
    	}
    */
    public class Demo {
    	//            ,        
            new IUsb() {
            	//          
                public void work() {
                    System.out.println("     !");
                }
            }.work();
    }
    
    列挙
  • エニュメレート・クラスは特殊な種類で、一つのクラスに固定されています.
  • エニュメレート・クラスのオブジェクトは、全体的な共通静的定数であり、使用時にエニュメレート・クラス名を使用して呼び出すことができる
  • .
  • エニュメレーション類はオブジェクト
  • を作成できません.
    //      
    public enum      {
    	    A,    B,    C;	//       ,            ,        
    }
    
    //   
        .    A;
    String name =     .name();	//            
    int index =     .ordinal();	//          , 0