天天看點

java靜态導入和枚舉

靜态導入:

Import 語句以一般的導入,導入一個類,或者某個包中的所有的類。

例如:Import java.util.*(導入java.util中的所有的類)

     Import java.util.Scanner (導入java .util.包中的Scanner類)

Import Static 語句導入一個類中的靜态方法,或者是所有的靜态方法

例如:Import Staticjava.lang.Math.max;(導入Math中的max靜态方法)

例題:import java.util.Scanner;//導入Scanner類

publicclass Number

{

    publicstaticvoid main(String[] args)

    {

        Scanner input = new Scanner(System.in);

        double du = input.nextDouble();

        double dd=Math.abs(du);

        double df = Math.max(dd,6); //使用Math下的abs和max靜态方法,要用Math

    }

}

importjava.util.Scanner;

importstatic java.lang.Math.abs;

importstatic java.lang.Math.*;

publicclass Number

{

    publicstaticvoid main(String[] args)

    {

        Scanner input = new Scanner(System.in);

        double du = input.nextDouble();

        double dd=abs(du);

        double df = max(dd,6);//使用abs和max方法,因為已經import static導入,所//以就可以直接來進行使用

    }

}

枚舉

1:枚舉是JDK1.5增加的新特性

枚舉也是一個類,在使用這個類的時候,隻能使用枚舉類裡面已經定義好的常量,使用者不能在定義自己的變量。

了解:enum 中的元素是枚舉類的對象,一切就OK了!

例如:publicclass Enum {

    publicstaticvoid main(String[] args) {

           String te = "ont";

           if(Textenum.valueOf(te) == Textenum.ont){

           System.out.println("ttt");

           }

           System.out.println(Textenum.out);

    }

  publicenum Textenum{

      ont ,two,three,fore;

       private Textenum(){}

      private Textenum(int i){}

  }

}

在enum類型的類Textenum類中,定義了四個元素:ont,two,three,fore。這四個元素實際上四個Textenum類型的四個對象,可以把它們當做普通的Textenum類的對象來進行使用。

如同:

publicclass Textenum{

    public Textenum(){};

    publicfinalstatic WeekDay ont = new WeekDay();//定義Textenum本身的對象,//并且為靜态的常量。

publicfinalstatic WeekDay two = new WeekDay();

publicfinalstatic WeekDay three = new WeekDay();

publicfinalstatic WeekDay fore = new WeekDay();

}

枚舉類型的标示符為enum,會自動封裝。

2:Textenum.valueof(),是利用枚舉類中的valueof()方法(靜态方法),把字元串“ont”在背景轉化為Textenum的實際對象,這樣就可以比較“out“和對象ont是否相同。

3:枚舉類中的構造方法,必須是私有的,和普通類一樣,可以定義多個構造方法。

如:

 publicenum Textenum{

      ont ,two,three,fore;

      private Textenum(){}

      private Textenum(int i){

  System.out.println(“two”);

}

  }

在定義的時候,想要調用不同的構造方法,如:ont這個對象調用不帶參數的構造方法, two這個元素想調用帶int參數的的構造方法

則為:publicenum Textenum{

      ont ,two(2),three,fore;

      private Textenum(){}

      private Textenum(int i){

 System.out.println(“two”);

}

  }

這樣在程式運作是,就會列印出two,說明在用two對象是,調用的是帶參數的Textenum(int i){}構造方法

publicenum Textenum{

          ont() ,two(3),three(),fore;

          private Textenum(){}

          private Textenum(int i){

             System.out.println("two");

      }

調用不帶參數的構造方法也可以用ont(),three(),fore,加括号和不家括号都可以表示調用不帶參數的構造方法。

4:枚舉類型中含有抽象的方法。

如:publicenum  unmber{

          a{

            @Override

            public unmber sum() {

                // TODO Auto-generated method stub

                returnnull;

            }

          },

          b{

            @Override

            public unmber sum() {

                // TODO Auto-generated method stub

                returnnull;

            }

          },

          c{

            @Override

            public unmber sum() {

                // TODO Auto-generated method stub

                returnnull;

            }

          },

          d{

            @Override

            public unmber sum() {

                // TODO Auto-generated method stub

                returnnull;

            }

          },

          e{

            @Override

            public unmber sum() {

                // TODO Auto-generated method stub

                returnnull;

            }

          };

        publicabstract unmber sum();

    }

Number 類型中含有一個抽象的方法,sum();這樣number中的元素就不能直接建立枚舉類number的對象,隻能通過它的子類來建立對象,

如:a{

            @Override

            public unmber sum() {

                // TODO Auto-generated method stub

                returnnull;

            }

這種方式可以看做事一個匿名内部類的方式。它的子類是一個匿名内部類。