導航:首頁 > IDC知識 > java子域名枚舉工具

java子域名枚舉工具

發布時間:2021-03-07 04:16:18

1、java中使用枚舉器遍歷的一個小問題。

第一個問題:
可以簡單點理解為it.hasnext())是判斷it迭代器是否還有下一個元素,只是一個判斷,而沒有將它指向it的下一個元素,當it.next()時才真正的指向下一個元素,也可以把it理解為一個數組讓你更容易接受吧..

第二個問題:
//介面 對像變數 = new一個介面的實現類
List a=new LinkedList ();
java.util
介面 List<E>
所有超級介面:
Collection<E>, Iterable<E>
所有已知實現類:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector 由JDK可看到:
介面inputStream有很多子介面和實現類
上面的代碼體現了編程面向介面的思想,這種思想能降低代碼的耦合性,
List a= null;
a = new LinkedList ();
a =new ArrayList;
上面代碼可以看出,你定義一個List變數a,就可以用這個變數記錄它產生的實現類

2、如何用java枚舉映射一個java類

枚舉類型是Java中的一個對象類型,java雖然提供了這個機能,但是好多人覺得使用起來不方便,通常都不怎麼使用這一種類型。。。

3、java枚舉的幾種用法

用法一:常量
在JDK1.5 之前,我們定義常量都是: public static fianl.... 。現在好了,
有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法。
Java代碼

public enum Color {
RED, GREEN, BLANK, YELLOW
}

用法二:switch
JDK1.6之前的switch語句只支持int,char,enum類型,使用枚舉,能讓我們的代碼可讀性更強。
Java代碼

enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}

用法三:向枚舉中添加新方法
如果打算自定義自己的方法,那麼必須在enum實例序列的最後添加一個分號。而且 Java 要求必須先定義 enum 實例。
Java代碼
public enum Color {
RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
// 成員變數
private String name;
private int index;
// 構造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}

用法四:覆蓋枚舉的方法
下面給出一個toString()方法覆蓋的例子。
Java代碼

public enum Color {
RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
// 成員變數
private String name;
private int index;
// 構造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//覆蓋方法
@Override
public String toString() {
return this.index+"_"+this.name;
}
}

用法五:實現介面
所有的枚舉都繼承自java.lang.Enum類。由於Java 不支持多繼承,所以枚舉對象不能再繼承其他類。
Java代碼

public interface Behaviour {
void print();
String getInfo();
}
public enum Color implements Behaviour{
RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
// 成員變數
private String name;
private int index;
// 構造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//介面方法
@Override
public String getInfo() {
return this.name;
}
//介面方法
@Override
public void print() {
System.out.println(this.index+":"+this.name);
}
}

用法六:使用介面組織枚舉
Java代碼

public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}

private static void testImplementsInterface() {
for (Food.DessertEnum dessertEnum : Food.DessertEnum.values()) {
System.out.print(dessertEnum + " ");
}
System.out.println();
//我這地方這么寫,是因為我在自己測試的時候,把這個coffee單獨到一個文件去實現那個food介面,而不是在那個介面的內部。
for (CoffeeEnum coffee : CoffeeEnum.values()) {
System.out.print(coffee + " ");
}
System.out.println();
//搞個實現介面,來組織枚舉,簡單講,就是分類吧。如果大量使用枚舉的話,這么干,在寫代碼的時候,就很方便調用啦。
//還有就是個「多態」的功能吧,
Food food = Food.DessertEnum.CAKE;
System.out.println(food);
food = CoffeeEnum.BLACK_COFFEE;
System.out.println(food);
}

4、怎麼使用java中的枚舉方法

怎麼解釋抄枚舉呢。枚舉襲的定義就是一個有限值的集合。一個枚舉類型的變數它的值只可能是類型值中的一個。
所以 Drection 是類型名,Drection drection 則是此類型的變數,變數的值應該是類型里邊所列的值中的一個,如果單寫個 WEST跟本不知道它是什麼,所以要加類名限定 即 Drection.WEST. 於是,對一個枚舉變數賦值的樣子就像這樣。
 if(drection==Drection.WEST) return true;   String west="WEST"; drection.toString().equals(west) return true;

5、用java編一個程序,實現兩個人玩「石頭、剪刀、布」,要求用枚舉類型定義石頭、剪刀、布

public class Test {
public enum Hand{//猜拳枚舉
ROCK,SCISSORS,PAPER;
public static Hand getHand(int index){
Hand hand = null;
switch (index) {
case 0:
hand = Hand.ROCK;
break;
case 1:
hand = Hand.SCISSORS;
break;
case 2:
hand = Hand.PAPER;
break;
default:
hand = Hand.ROCK;
break;
}
return hand;
}
}

public static void main(String[] args) {
//兩個人猜拳5次
for (int i = 0; i < 5; i++) {
Hand hand1 = Hand.getHand((int)(Math.random()*3));
Hand hand2 = Hand.getHand((int)(Math.random()*3));
judge(hand1, hand2);
}

}

private static void judge(Hand hand1,Hand hand2){
if(hand1 == Hand.ROCK){
if(hand2 == Hand.ROCK){
System.out.println("第一個出拳頭,第二個出拳頭,平局");
}else if(hand2 == Hand.SCISSORS){
System.out.println("第一個出拳頭,第二個出剪刀,第一個贏");
}else if(hand2 == Hand.PAPER){
System.out.println("第一個出拳頭,第二個出布,第二個贏");
}
}else if(hand1 == Hand.SCISSORS){
if(hand2 == Hand.ROCK){
System.out.println("第一個出剪刀,第二個出拳頭,第二個贏");
}else if(hand2 == Hand.SCISSORS){
System.out.println("第一個出剪刀,第二個出剪刀,平局");
}else if(hand2 == Hand.PAPER){
System.out.println("第一個出剪刀,第二個出布,第一個贏");
}
}else if(hand1 == Hand.PAPER){
if(hand2 == Hand.ROCK){
System.out.println("第一個出布,第二個出拳頭,第一個贏");
}else if(hand2 == Hand.SCISSORS){
System.out.println("第一個出布,第二個出剪刀,第二個贏");
}else if(hand2 == Hand.PAPER){
System.out.println("第一個出布,第二個出布,平局");
}
}
}
}

應該不是最優解決辦法,先這么著把

6、記得前段時間在看java的枚舉的時候,有一種要每個枚舉值都實現的方法 那是怎麼個情況?

你說的是構造函數吧?給你舉個例子看看:

/**
 * 項目類型枚舉類
 */
public enum EProjectType{
GAS("儲氣庫","GAS"),
LNG("液化天然氣","LNG"),
OIL("油氣管道","OIL");

/*名稱*/
private String name;
/*編碼*/
private String code;

/**
 * 構造函數
 * @param name 名稱
 * @param code 編碼
 */
public EProjectType(String name,String code){
this.name = name;
this.code = code;
}

/**
 * 根據編碼獲取對應的枚舉
 * @param code
 * @return
 */
public static EProjectType getEProjectTypeByCode(String code){
EProjectType values[] = EProjectType.values();
for(int i = 0; i < values.length; i++){
if(values[i].code.equals(code)){
return values[i];
}
}
return null;
}

public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public String getCode(){
return this.code;
}
public void setCode(String code){
this.code = code;
}
}

7、java 裡面的枚舉類型有什麼工具類沒

枚舉類寫在某一個類內部就是內部類了。

內部類概述:
把類定義在其他類的內部,這個類就專被稱為屬內部類。
舉例:在類A中定義了一個類B,類B就是內部類。
內部的訪問特點:
A:內部類可以直接訪問外部類的成員,包括私有。
B:外部類要訪問內部類的成員,必須創建對象。

8、用java寫一個枚舉類程序

package com.school.stereotype; 
/** 
 * 活動枚舉類型 
 * @author QiXuan.Chen 
 */
public enum EventStatus { 
  /** 
   * 未發布。 
   */ 
  DRAFT("DRAFT", "未發布"), 
  /** 
   * 已發布。 
   */
  PUBLISHED("PUBLISHED", "已發布"); 
  /** 
   * 活動狀態的值。 
   */
  private String value; 
  /** 
   * 活動狀態的中文描述。 
   */
  private String text; 
  /** 
   * @param status 活動狀態的值 
   * @param desc 活動狀態的中文描述 
   */
  private EventStatus(String status, String desc) { 
    value = status; 
    text = desc; 
  } 
  /** 
   * @return 當前枚舉對象的值。 
   */
  public String getValue() { 
    return value; 
  } 
  /** 
   * @return 當前狀態的中文描述。 
   */
  public String getText() { 
    return text; 
  } 
  /** 
   * 根據活動狀態的值獲取枚舉對象。 
   * 
   * @param status 活動狀態的值 
   * @return 枚舉對象 
   */
  public static EventStatus getInstance(String status) { 
    EventStatus[] allStatus = EventStatus.values(); 
    for (EventStatus ws : allStatus) { 
      if (ws.getValue().equalsIgnoreCase(status)) { 
        return ws; 
      } 
    } 
    throw new IllegalArgumentException("status值非法,沒有符合課程狀態的枚舉對象"); 
  } 
}

9、怎樣在Java中使用嵌套枚舉類型

J

與java子域名枚舉工具相關的知識