靜态導入:
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;
}
這種方式可以看做事一個匿名内部類的方式。它的子類是一個匿名内部類。