java(18) - 枚举类型和静态导入

一.枚举:

     我们定义的枚举类都是继承于java.lang.Enum类,枚举中的每个成员默认都是 public  static final。

       枚举类型的使用是通过 枚举类名.值 的方式来调用。

       对于枚举类型的方法大家最好看一下帮助文档,这样能更好的理解。

        例子:

        public enum Color{

                     Red,White,Bule;//有没有分号都一样,这三个枚举成员,就是Color的三个实例。在编译起就已经确定。

       }

        注意:每个枚举成员其实就是你定义的枚举类型的一个实例,当我们定义了枚举类型后,在编译时刻就已经确定了类型有几个实例,分别是什么,且在运行期间无法再用该枚举类型创建新的实例。就像上面那个例子一样,在编译就已经确定了该枚举类型就有三个实例。无法再运行时再添加新的实例。

       更好的理解枚举:

       例子:

 

       

public enum ColorTest {
	//ColorTest的四个实例,因为他们的构造方法是有参的,传递一个String类型。所以以下的四个实例,都要传递字符串进去。
	red("red"),orange("orange"),yellow("yellow"),blue("blue");
	String str;
	ColorTest(String str){
		this.str = str;
	}
	public String getColor(){
		return this+"="+str;
	}
	public static void main(String[] args) {
		    ColorTest[] color = ColorTest.values();
		    
		    for(ColorTest c : color){
		    	
		    	System.out.println(c.getColor());
		   
		    }
		    
		    
	}
}


 

打印:

red=red
orange=orange
yellow=yellow
blue=blue


 

枚举类型的简单使用:

public enum Color {
      Red,White,Bule;//有没有分号都可以,而且着三个对象在编译时就已经确定好了。
      
    public static void main(String[] args) {
    	
    	   Color c = Color.Bule;
    	   
    	   switch(c){
    	   
    	   case Red:
    		   System.out.println("红色");
    		   break;
    	   case White:
    		   System.out.println("白色");
    		   break;
    	   case Bule:
    		   System.out.println("蓝色");
    		   break;
    	   }
	}
}

打印: 蓝色

二.静态导入:

        静态导入就是可以把其他类中的方法在实现静态导入的类中直接使用,如果不是实现静态导入则需要在生成该类的对象,在调用方法。

        静态导入语法:import static 包名.类名.静态方法或静态成员变量;

       注意:要使用静态导入必须一直精确到静态方法或静态成员变量。

       例子:

导入类:

public class Student {

	    public static String name = "zhangsan";
	    
	    public static String age = "29";
	
	    public  String getName(){
	    	
	    	return name;
	    	
	    }
	    public static String getAge(){
	    	
	    	return age;
	    	
	    }
	
}

 

测试类:

 

import static Test5.Student.name;//静态导入Test5包下的Student类中的静态name属性。只可以是静态属性。
import static Test5.Student.getAge;//静态导入getName方法,不能当如普通方法。

public class Test {
        public static void main(String[] args) {
			
        	System.out.println(name);
        	
        	System.out.println(getAge());
        	
		}
}


 

 

 

 

你可能感兴趣的:(java)