国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

java中的枚舉類型詳細(xì)介紹

 更新時(shí)間:2012年11月15日 09:30:04   作者:  
枚舉中有values方法用于按照枚舉定義的順序生成一個(gè)數(shù)組,可以用來歷遍;接下來將詳細(xì)介紹
枚舉中有values方法用于按照枚舉定義的順序生成一個(gè)數(shù)組,可以用來歷遍。我們自定義的枚舉類都是繼承自java.lang.Enum,擁有一下實(shí)例中的功能:
復(fù)制代碼 代碼如下:

//: enumerated/EnumClass.java
// Capabilities of the Enum class
import static net.mindview.util.Print.*;
enum Shrubbery { GROUND, CRAWLING, HANGING }
public class EnumClass {
  public static void main(String[] args) {
    for(Shrubbery s : Shrubbery.values()) {
      print(s + " ordinal: " + s.ordinal());
      printnb(s.compareTo(Shrubbery.CRAWLING) + " ");
      printnb(s.equals(Shrubbery.CRAWLING) + " ");
      print(s == Shrubbery.CRAWLING);
      print(s.getDeclaringClass());
      print(s.name());
      print("----------------------");
    }
    // Produce an enum value from a string name:
    for(String s : "HANGING CRAWLING GROUND".split(" ")) {
      Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
      print(shrub);
    }
  }
} /* Output:
GROUND ordinal: 0
-1 false false
class Shrubbery
Joshua Bloch was extremely helpful in developing this chapter.
GROUND
----------------------
CRAWLING ordinal: 1
true true
class Shrubbery
CRAWLING
----------------------
HANGING ordinal: 2
false false
class Shrubbery
HANGING
----------------------
HANGING
CRAWLING
GROUND
*///:~

我們還可以使用靜態(tài)的枚舉引用:
復(fù)制代碼 代碼如下:

//: enumerated/Spiciness.java
package enumerated;
public enum Spiciness {NOT, MILD, MEDIUM, HOT, FLAMING} ///:~
//: enumerated/Burrito.java
package enumerated;
import static enumerated.Spiciness.*;
public class Burrito {
  Spiciness degree;
  public Burrito(Spiciness degree) { this.degree = degree;}
  public String toString() { return "Burrito is "+ degree;}
  public static void main(String[] args) {
    System.out.println(new Burrito(NOT));
    System.out.println(new Burrito(MEDIUM));
    System.out.println(new Burrito(HOT));
  }
} /* Output:
Burrito is NOT
Burrito is MEDIUM
Burrito is HOT
*///:~

向枚舉添加方法
除了不能被繼承之外,枚舉可以當(dāng)作一般的類來看待,這意味著可以向枚舉添加方法,還可以在枚舉中定義main方法:
復(fù)制代碼 代碼如下:

//: enumerated/OzWitch.java
// The witches in the land of Oz.
import static net.mindview.util.Print.*;
public enum OzWitch {
  // Instances must be defined first, before methods:
  WEST("Miss Gulch, aka the Wicked Witch of the West"),NORTH("Glinda, the Good Witch of the North"),EAST("Wicked Witch of the East, wearer of the Ruby " + "Slippers, crushed by Dorothy's house"),SOUTH("Good by inference, but missing");
  private String description;
  // Constructor must be package or private access:
  private OzWitch(String description) {
    this.description = description;
  }
  public String getDescription() { return description; }
  public static void main(String[] args) {
    for(OzWitch witch : OzWitch.values())
      print(witch + ": " + witch.getDescription());
  }
} /* Output:
WEST: Miss Gulch, aka the Wicked Witch of the West
NORTH: Glinda, the Good Witch of the North
EAST: Wicked Witch of the East, wearer of the Ruby Slippers, crushed by Dorothy's house
SOUTH: Good by inference, but missing
*///:~

復(fù)制代碼 代碼如下:

//: enumerated/SpaceShip.java
public enum SpaceShip {
  SCOUT, CARGO, TRANSPORT, CRUISER, BATTLESHIP, MOTHERSHIP;
  public String toString() {
    String id = name();
    String lower = id.substring(1).toLowerCase();
    return id.charAt(0) + lower;
  }
  public static void main(String[] args) {
    for(SpaceShip s : values()) {
      System.out.println(s);
    }
  }
} /* Output:
Scout
Cargo
Transport
Cruiser
Battleship
Mothership
*///:~

switch語句中的枚舉
  枚舉的一種重要作用就是在switch語句中,通常switch語句僅對(duì)整型值起作用,但是枚舉中有內(nèi)置的整型順序,因此實(shí)例的順序可以通過某種方法獲得,因此enums就可以在switch語句中使用:
復(fù)制代碼 代碼如下:

//: enumerated/TrafficLight.java
// Enums in switch statements.
import static net.mindview.util.Print.*;
// Define an enum type:
enum Signal { GREEN, YELLOW, RED, }
  public class TrafficLight {
    Signal color = Signal.RED;
    public void change() {
    switch(color) {
      // Note that you don't have to say Signal.RED
      // in the case statement:
      case RED: color = Signal.GREEN;
            break;
      case GREEN: color = Signal.YELLOW;
            break;
      case YELLOW: color = Signal.RED;
            break;
    }
  }
  public String toString() {
    return "The traffic light is " + color;
  }
  public static void main(String[] args) {
    TrafficLight t = new TrafficLight();
    for(int i = 0; i < 7; i++) {
      print(t);
      t.change();
    }
  }
} /* Output:
The traffic light is RED
The traffic light is GREEN
The traffic light is YELLOW
The traffic light is RED
The traffic light is GREEN
The traffic light is YELLOW
The traffic light is RED
*///:~

values()的秘密
  雖然我們之前使用了values方法,但是如果查看Enum,我們并沒有發(fā)現(xiàn)values方法,那么是不是還有其他隱藏的方法呢?我們可以通過一個(gè)簡(jiǎn)單的反射代碼來查看一下:
復(fù)制代碼 代碼如下:

//: enumerated/Reflection.java
// Analyzing enums using reflection.
import java.lang.reflect.*;
import java.util.*;
import net.mindview.util.*;
import static net.mindview.util.Print.*;
enum Explore { HERE, THERE }
public class Reflection {
  public static Set<String> analyze(Class<?> enumClass) {
    print("----- Analyzing " + enumClass + " -----");
    print("Interfaces:");
    for(Type t : enumClass.getGenericInterfaces())
      print(t);
    print("Base: " + enumClass.getSuperclass());
    print("Methods: ");
    Set<String> methods = new TreeSet<String>();
    for(Method m : enumClass.getMethods())
      methods.add(m.getName());
    print(methods);
    return methods;
  }
  public static void main(String[] args) {
    Set<String> exploreMethods = analyze(Explore.class);
    Set<String> enumMethods = analyze(Enum.class);
    print("Explore.containsAll(Enum)? " +
    exploreMethods.containsAll(enumMethods));
    printnb("Explore.removeAll(Enum): ");
    exploreMethods.removeAll(enumMethods);
    print(exploreMethods);
    // Decompile the code for the enum:
    OSExecute.command("javap Explore");
  }
} /* Output:
----- Analyzing class Explore -----
Interfaces:
Base: class java.lang.Enum
Methods:
[compareTo, equals, getClass, getDeclaringClass, hashCode, name, notify, notifyAll, ordinal, toString, valueOf, values, wait]
----- Analyzing class java.lang.Enum -----
Interfaces:
java.lang.Comparable<E>
interface java.io.Serializable
Base: class java.lang.Object
Methods:
[compareTo, equals, getClass, getDeclaringClass, hashCode, name, notify, notifyAll, ordinal, toString, valueOf, wait]
Explore.containsAll(Enum)? true
Explore.removeAll(Enum): [values]
Compiled from "Reflection.java"
final class Explore extends java.lang.Enum{
public static final Explore HERE;
public static final Explore THERE;
public static final Explore[] values();
public static Explore valueOf(java.lang.String);
static {};
}
*///:~

我們可以看到values方法是被編譯器添加的。valueOf方法也是在創(chuàng)建枚舉的時(shí)候由編譯器添加的,但是在Enum類中也有一個(gè)valueOf方法,但是這個(gè)方法有兩個(gè)參數(shù),而由編譯器添加的valueOf方法只有一個(gè)參數(shù)。枚舉被編譯器解釋為final,因此枚舉不能被繼承。因?yàn)関alues方法是被編譯器添加的靜態(tài)方法,因此如果你將枚舉上塑造型到Enum的時(shí)候,values方法將會(huì)不可用,但是在Class中有g(shù)etEnumConstants方法,因此雖然values方法在Enum中不可用,但是還是可以通過Class對(duì)象獲取枚舉的實(shí)例:
復(fù)制代碼 代碼如下:

//: enumerated/UpcastEnum.java
// No values() method if you upcast an enum
enum Search { HITHER, YON }
public class UpcastEnum {
  public static void main(String[] args) {
    Search[] vals = Search.values();
    Enum e = Search.HITHER; // Upcast
    // e.values(); // No values() in Enum
    for(Enum en : e.getClass().getEnumConstants())
      System.out.println(en);
  }
} /* Output:
HITHER
YON
*///:~

實(shí)現(xiàn)而不繼承
  因?yàn)槲覀兌x的枚舉類型都繼承自java.lang.Enum,而且Java又不支持多重繼承,因此不同通過繼承創(chuàng)建枚舉,但是可以通過繼承一個(gè)或多個(gè)接口創(chuàng)建枚舉:
復(fù)制代碼 代碼如下:

//: enumerated/cartoons/EnumImplementation.java
// An enum can implement an interface
package enumerated.cartoons;
import java.util.*;
import net.mindview.util.*;
enum CartoonCharacter implements Generator<CartoonCharacter> {
  SLAPPY, SPANKY, PUNCHY, SILLY, BOUNCY, NUTTY, BOB;
  private Random rand = new Random(47);
  public CartoonCharacter next() {
    return values()[rand.nextInt(values().length)];
  }
}
public class EnumImplementation {
  public static <T> void printNext(Generator<T> rg) {
    System.out.print(rg.next() + ", ");
  }
  public static void main(String[] args) {
    // Choose any instance:
    CartoonCharacter cc = CartoonCharacter.BOB;
    for(int i = 0; i < 10; i++)
      printNext(cc);
  }
} /* Output:
BOB, PUNCHY, BOB, SPANKY, NUTTY, PUNCHY, SLAPPY, NUTTY, NUTTY, SLAPPY,
*///:~

隨機(jī)選取
  后面我們很多例子中都會(huì)用到從枚舉實(shí)例中隨機(jī)選取對(duì)象,我們創(chuàng)建一個(gè)公用類來實(shí)現(xiàn):
復(fù)制代碼 代碼如下:

//: net/mindview/util/Enums.java
package net.mindview.util;
import java.util.*;
public class Enums {
  private static Random rand = new Random(47);
  public static <T extends Enum<T>> T random(Class<T> ec) {
    return random(ec.getEnumConstants());
  }
  public static <T> T random(T[] values) {
    return values[rand.nextInt(values.length)];
  }
} ///:~

復(fù)制代碼 代碼如下:

//: enumerated/RandomTest.java
import net.mindview.util.*;
enum Activity { SITTING, LYING, STANDING, HOPPING, RUNNING, DODGING, JUMPING, FALLING, FLYING }
public class RandomTest {
  public static void main(String[] args) {
    for(int i = 0; i < 20; i++)
      System.out.print(Enums.random(Activity.class) + " ");
  }
} /* Output:
STANDING FLYING RUNNING STANDING RUNNING STANDING LYING DODGING SITTING RUNNING HOPPING HOPPING HOPPING RUNNING STANDING LYING FALLING RUNNING FLYING LYING
*///:~

使用接口進(jìn)行組織
  枚舉不能被繼承,這一點(diǎn)有時(shí)候會(huì)給我們?cè)斐刹环奖?,因?yàn)橛行r(shí)候我們想要通過繼承來擴(kuò)展枚舉的數(shù)量,有些時(shí)候我們需要對(duì)枚舉進(jìn)行分組。對(duì)于后者我們可以通過在接口內(nèi)定義分組的枚舉,然后在通過繼承自這個(gè)接口來創(chuàng)建枚舉,如下我們有不同的食物類需要?jiǎng)?chuàng)建為枚舉,但是我們又需要將每個(gè)種類定義為Food的類型,如下:
復(fù)制代碼 代碼如下:

//: enumerated/menu/Food.java
// Subcategorization of enums within interfaces.
package enumerated.menu;
public interface Food {enum Appetizer implements Food {SALAD, SOUP, SPRING_ROLLS;}
  enum MainCourse implements Food {LASAGNE, BURRITO, PAD_THAI,LENTILS, HUMMOUS, VINDALOO;}
  enum Dessert implements Food {TIRAMISU, GELATO, BLACK_FOREST_CAKE,FRUIT, CREME_CARAMEL;}
  enum Coffee implements Food {BLACK_COFFEE, DECAF_COFFEE, ESPRESSO,LATTE, CAPPUCCINO, TEA, HERB_TEA;}
} ///:~

因?yàn)槊總€(gè)枚舉都定義為接口的實(shí)現(xiàn),因此每個(gè)枚舉都是Food類型,如下:
復(fù)制代碼 代碼如下:

//: enumerated/menu/TypeOfFood.java
package enumerated.menu;
import static enumerated.menu.Food.*;
public class TypeOfFood {
  public static void main(String[] args) {
    Food food = Appetizer.SALAD;
    food = MainCourse.LASAGNE;
    food = Dessert.GELATO;
    food = Coffee.CAPPUCCINO;
  }
} ///:~

但是接口不能像枚舉一樣操作多種類型,因此如果你需要一個(gè)枚舉的枚舉,那么你可以在一個(gè)枚舉里面封裝每個(gè)枚舉類型的一個(gè)實(shí)例:
復(fù)制代碼 代碼如下:

//: enumerated/menu/Course.java
package enumerated.menu;
import net.mindview.util.*;
public enum Course {
  APPETIZER(Food.Appetizer.class),MAINCOURSE(Food.MainCourse.class),DESSERT(Food.Dessert.class),COFFEE(Food.Coffee.class);
  private Food[] values;
  private Course(Class<? extends Food> kind) {
    values = kind.getEnumConstants();
  }
  public Food randomSelection() {
    return Enums.random(values);
  }
} ///:~

每個(gè)枚舉使用了Class對(duì)象作為對(duì)應(yīng)的構(gòu)造器參數(shù),我們就可以從這個(gè)參數(shù)里面使用getEnumConstants來獲得枚舉實(shí)例,這個(gè)實(shí)例可以用在randomSelection方法中生成隨機(jī)的餐點(diǎn):
復(fù)制代碼 代碼如下:

//: enumerated/menu/Meal.java
package enumerated.menu;
public class Meal {
  public static void main(String[] args) {
    for(int i = 0; i < 5; i++) {
      for(Course course : Course.values()) {
        Food food = course.randomSelection();
        System.out.println(food);
      }
      System.out.println("---");
    }
  }
} /* Output:
SPRING_ROLLS
VINDALOO
FRUIT
DECAF_COFFEE
---
SOUP
VINDALOO
FRUIT
TEA
---
SALAD
BURRITO
FRUIT
TEA
---
SALAD
BURRITO
CREME_CARAMEL
LATTE
---
SOUP
BURRITO
TIRAMISU
ESPRESSO
---
*///:~

下面是一種更加緊湊的實(shí)現(xiàn)方法:
復(fù)制代碼 代碼如下:

//: enumerated/SecurityCategory.java
// More succinct subcategorization of enums.
import net.mindview.util.*;
enum SecurityCategory {
  STOCK(Security.Stock.class), BOND(Security.Bond.class);
  Security[] values;
  SecurityCategory(Class<? extends Security> kind) {
    values = kind.getEnumConstants();
  }
  interface Security {
    enum Stock implements Security { SHORT, LONG, MARGIN }
    enum Bond implements Security { MUNICIPAL, JUNK }
  }
  public Security randomSelection() {
    return Enums.random(values);
  }
  public static void main(String[] args) {
    for(int i = 0; i < 10; i++) {
      SecurityCategory category = Enums.random(SecurityCategory.class);
      System.out.println(category + ": " +
      category.randomSelection());
    }
  }
} /* Output:
BOND: MUNICIPAL
BOND: MUNICIPAL
STOCK: MARGIN
STOCK: MARGIN
BOND: JUNK
STOCK: SHORT
STOCK: LONG
STOCK: LONG
BOND: MUNICIPAL
BOND: JUNK
*///:~

復(fù)制代碼 代碼如下:

//: enumerated/menu/Meal2.java
package enumerated.menu;
import net.mindview.util.*;
public enum Meal2 {
  APPETIZER(Food.Appetizer.class),MAINCOURSE(Food.MainCourse.class),DESSERT(Food.Dessert.class),COFFEE(Food.Coffee.class);
  private Food[] values;
  private Meal2(Class<? extends Food> kind) {
    values = kind.getEnumConstants();
  }
  public interface Food {
    enum Appetizer implements Food {SALAD, SOUP, SPRING_ROLLS;}
    enum MainCourse implements Food {LASAGNE, BURRITO, PAD_THAI,LENTILS, HUMMOUS, VINDALOO;}
    enum Dessert implements Food {TIRAMISU, GELATO, BLACK_FOREST_CAKE,FRUIT, CREME_CARAMEL;}
    enum Coffee implements Food {BLACK_COFFEE, DECAF_COFFEE, ESPRESSO,LATTE, CAPPUCCINO, TEA, HERB_TEA;}
  }
  public Food randomSelection() {
    return Enums.random(values);
  }
  public static void main(String[] args) {
    for(int i = 0; i < 5; i++) {
      for(Meal2 meal : Meal2.values()) {
        Food food = meal.randomSelection();
        System.out.println(food);
      }
      System.out.println("---");
    }
  }
} /* Same output as Meal.java *///:~

使用EnumSet而不是標(biāo)志位
  在Java SE5中添加了EnumSet來將枚舉和Set組合用于替換基于整型的位標(biāo)志。位標(biāo)志通常用來指示某種信息的開關(guān),但是在代碼中是對(duì)位進(jìn)行操作而不是有意義的概念,因此不容易理解。EnumSet的效率比位標(biāo)志要快,在內(nèi)部使用long性表示一個(gè)位向量,然后就可以使用更加概念化的語言來表示某個(gè)位的開關(guān),而不用擔(dān)心效率。EnumSet中的元素必須來自同一個(gè)枚舉,下面定義一個(gè)報(bào)警器位置的枚舉:
復(fù)制代碼 代碼如下:

//: enumerated/AlarmPoints.java
package enumerated;
public enum AlarmPoints {STAIR1, STAIR2, LOBBY, OFFICE1, OFFICE2, OFFICE3,OFFICE4, BATHROOM, UTILITY, KITCHEN} ///:~

然后使用EnumSet類跟蹤報(bào)警的狀態(tài):
復(fù)制代碼 代碼如下:

//: enumerated/EnumSets.java
// Operations on EnumSets
package enumerated;
import java.util.*;
import static enumerated.AlarmPoints.*;
import static net.mindview.util.Print.*;
public class EnumSets {
  public static void main(String[] args) {
    EnumSet<AlarmPoints> points = EnumSet.noneOf(AlarmPoints.class); // Empty set
    points.add(BATHROOM);
    print(points);
    points.addAll(EnumSet.of(STAIR1, STAIR2, KITCHEN));
    print(points);
    points = EnumSet.allOf(AlarmPoints.class);
    points.removeAll(EnumSet.of(STAIR1, STAIR2, KITCHEN));
    print(points);
    points.removeAll(EnumSet.range(OFFICE1, OFFICE4));
    print(points);
    points = EnumSet.complementOf(points);
    print(points);
  }
} /* Output:
[BATHROOM]
[STAIR1, STAIR2, BATHROOM, KITCHEN]
[LOBBY, OFFICE1, OFFICE2, OFFICE3, OFFICE4, BATHROOM, UTILITY]
[LOBBY, BATHROOM, UTILITY]
[STAIR1, STAIR2, OFFICE1, OFFICE2, OFFICE3, OFFICE4, KITCHEN]
*///:~

EnumSet是建立在long型上的,有64位,那么如果我們的枚舉類型超過了這個(gè)數(shù)字呢?
復(fù)制代碼 代碼如下:

//: enumerated/BigEnumSet.java
import java.util.*;
public class BigEnumSet {
  enum Big { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21,A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32,
A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43,A44, A45, A46, A47, A48, A49, A50, A51, A52, A53, A54,A55, A56, A57, A58, A59, A60, A61, A62, A63, A64, A65,
A66, A67, A68, A69, A70, A71, A72, A73, A74, A75 }
  public static void main(String[] args) {
    EnumSet<Big> bigEnumSet = EnumSet.allOf(Big.class);
    System.out.println(bigEnumSet);
  }
} /* Output:
[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, A49, A50, A51, A52, A53, A54, A55, A56, A57, A58, A59, A60, A61, A62, A63, A64, A65, A66, A67, A68, A69, A70, A71, A72, A73, A74, A75]
*///:~

我們可以看到程序正常運(yùn)行,那么很有可能是內(nèi)部又添加了一個(gè)long型來幫助容納枚舉類型
使用EnumMap
  EnumMap是一種特殊類型的Map,他的鍵的值只能是同一個(gè)枚舉中的類型,因?yàn)檫@一點(diǎn)在內(nèi)部可以通過數(shù)組來實(shí)現(xiàn)EnumMap,效率非常高。
復(fù)制代碼 代碼如下:

//: enumerated/EnumMaps.java
// Basics of EnumMaps.
package enumerated;
import java.util.*;
import static enumerated.AlarmPoints.*;
import static net.mindview.util.Print.*;
interface Command { void action(); }
public class EnumMaps {
  public static void main(String[] args) {
    EnumMap<AlarmPoints,Command> em = new EnumMap<AlarmPoints,Command>(AlarmPoints.class);
    em.put(KITCHEN, new Command() {
      public void action() { print("Kitchen fire!"); }
    });
    em.put(BATHROOM, new Command() {
      public void action() { print("Bathroom alert!"); }
    });
    for(Map.Entry<AlarmPoints,Command> e : em.entrySet()) {
      printnb(e.getKey() + ": ");
      e.getValue().action();
    }
    try { // If there's no value for a particular key:
      em.get(UTILITY).action();
    } catch(Exception e) {
      print(e);
    }
  }
} /* Output:
BATHROOM: Bathroom alert!
KITCHEN: Kitchen fire!
java.lang.NullPointerException
*///:~

特定常量方法
  Java的枚舉有一個(gè)非常有趣的特性,那就是可以為每一個(gè)枚舉實(shí)例定義不同的行為,為了實(shí)現(xiàn)這一點(diǎn),我們定義一個(gè)或者多個(gè)抽象方法作為枚舉的一部分,然后為每個(gè)枚舉實(shí)例定義方法:
復(fù)制代碼 代碼如下:

//: enumerated/ConstantSpecificMethod.java
import java.util.*;
import java.text.*;
public enum ConstantSpecificMethod {
  DATE_TIME {String getInfo() {return DateFormat.getDateInstance().format(new Date());}},
  CLASSPATH {String getInfo() {return System.getenv("CLASSPATH");}},
VERSION {String getInfo() {return System.getProperty("java.version");}};
  abstract String getInfo();
  public static void main(String[] args) {
    for(ConstantSpecificMethod csm : values())
      System.out.println(csm.getInfo());
  }
} /* (Execute to see output) *///:~

上面的代碼卡起來似乎是每個(gè)枚舉元素都是不同的元素,而所有的元素都繼承自ConstantSpecificMethod基類,但是我們不能真的這樣理解,因?yàn)槲覀儾荒軐⒚杜e元素當(dāng)作類型來看待:
復(fù)制代碼 代碼如下:

//: enumerated/NotClasses.java
// {Exec: javap -c LikeClasses}
import static net.mindview.util.Print.*;
enum LikeClasses {WINKEN { void behavior() { print("Behavior1"); } },BLINKEN { void behavior() { print("Behavior2"); } },NOD { void behavior() { print("Behavior3"); } };
  abstract void behavior();
}
public class NotClasses {
  // void f1(LikeClasses.WINKEN instance) {} // Nope
} /* Output:
Compiled from "NotClasses.java"
abstract class LikeClasses extends java.lang.Enum{
public static final LikeClasses WINKEN;
public static final LikeClasses BLINKEN;
public static final LikeClasses NOD;
...
*///:~

考慮另外一個(gè)例子,有一個(gè)洗車的菜單,客戶根據(jù)不同的菜單選擇不同的服務(wù),可以使用特定常量方法來將菜單與服務(wù)相關(guān)聯(lián),使用EnumSet來維護(hù)客戶的選擇,如下:
復(fù)制代碼 代碼如下:

//: enumerated/CarWash.java
import java.util.*;
import static net.mindview.util.Print.*;
public class CarWash {
  public enum Cycle {UNDERBODY {void action() { print("Spraying the underbody"); }},
WHEELWASH {void action() { print("Washing the wheels"); }},
         PREWASH {void action() { print("Loosening the dirt"); }},
         BASIC {void action() { print("The basic wash"); }},
         HOTWAX {void action() { print("Applying hot wax"); }},
         RINSE {void action() { print("Rinsing"); }},
         BLOWDRY {void action() { print("Blowing dry"); }};
         abstract void action();
  }
  EnumSet<Cycle> cycles = EnumSet.of(Cycle.BASIC, Cycle.RINSE);
  public void add(Cycle cycle) { cycles.add(cycle); }
  public void washCar() {
    for(Cycle c : cycles)
      c.action();
  }
  public String toString() { return cycles.toString(); }
  public static void main(String[] args) {
    CarWash wash = new CarWash();
    print(wash);
    wash.washCar();
    // Order of addition is unimportant:
    wash.add(Cycle.BLOWDRY);
    wash.add(Cycle.BLOWDRY); // Duplicates ignored
    wash.add(Cycle.RINSE);
    wash.add(Cycle.HOTWAX);
    print(wash);
    wash.washCar();
  }
} /* Output:
[BASIC, RINSE]
The basic wash
Rinsing
[BASIC, HOTWAX, RINSE, BLOWDRY]
The basic wash
Applying hot wax
Rinsing
Blowing dry
*///:~

我們還可以對(duì)默認(rèn)的特定常量方法進(jìn)行重寫,而不是使用繼承抽象方法,如下:
復(fù)制代碼 代碼如下:

//: enumerated/OverrideConstantSpecific.java
import static net.mindview.util.Print.*;
public enum OverrideConstantSpecific {
  NUT, BOLT,WASHER {void f() { print("Overridden method"); }};
  void f() { print("default behavior"); }
  public static void main(String[] args) {
    for(OverrideConstantSpecific ocs : values()) {
      printnb(ocs + ": ");
      ocs.f();
    }
  }
} /* Output:
NUT: default behavior
BOLT: default behavior
WASHER: Overridden method
*///:~

有些時(shí)候我們希望對(duì)特定的請(qǐng)求在鏈條中進(jìn)行傳遞,知道鏈條中的某個(gè)對(duì)象能夠處理請(qǐng)求,使用特定常量方法可以很輕松的實(shí)現(xiàn),如下是一個(gè)處理郵件的實(shí)例:
復(fù)制代碼 代碼如下:

//: enumerated/PostOffice.java
// Modeling a post office.
Enumerated Types 743
import java.util.*;
import net.mindview.util.*;
import static net.mindview.util.Print.*;
class Mail {
  // The NO's lower the probability of random selection:
  enum GeneralDelivery {YES,NO1,NO2,NO3,NO4,NO5}
  enum Scannability {UNSCANNABLE,YES1,YES2,YES3,YES4}
  enum Readability {ILLEGIBLE,YES1,YES2,YES3,YES4}
  enum Address {INCORRECT,OK1,OK2,OK3,OK4,OK5,OK6}
  enum ReturnAddress {MISSING,OK1,OK2,OK3,OK4,OK5}
  GeneralDelivery generalDelivery;
  Scannability scannability;
  Readability readability;
  Address address;
  ReturnAddress returnAddress;
  static long counter = 0;
  long id = counter++;
  public String toString() { return "Mail " + id; }
  public String details() {
  return toString() + ", General Delivery: " + generalDelivery + ", Address Scanability: " + scannability + ", Address Readability: " + readability +
", Address Address: " + address + ", Return address: " + returnAddress;
  }
  // Generate test Mail:
  public static Mail randomMail() {
    Mail m = new Mail();
    m.generalDelivery= Enums.random(GeneralDelivery.class);
    m.scannability = Enums.random(Scannability.class);
    m.readability = Enums.random(Readability.class);
    m.address = Enums.random(Address.class);
    m.returnAddress = Enums.random(ReturnAddress.class);
    return m;
  }
  public static Iterable<Mail> generator(final int count) {
    return new Iterable<Mail>() {
      int n = count;
      public Iterator<Mail> iterator() {
        return new Iterator<Mail>() {
          public boolean hasNext() { return n-- > 0; }
          public Mail next() { return randomMail(); }
          public void remove() { // Not implemented
            throw new UnsupportedOperationException();
          }
        };
      }
    };
  }
}
public class PostOffice {
  enum MailHandler {
    GENERAL_DELIVERY {
      boolean handle(Mail m) {
        switch(m.generalDelivery) {
          case YES:
            print("Using general delivery for " + m);
            return true;
          default: return false;
        }
      }
    },
    MACHINE_SCAN {
      boolean handle(Mail m) {
        switch(m.scannability) {
          case UNSCANNABLE: return false;
          default:
            switch(m.address) {
              case INCORRECT: return false;
              default:
                print("Delivering "+ m + " automatically");
              return true;
            }
        }
      }
    },
    VISUAL_INSPECTION {
      boolean handle(Mail m) {
        switch(m.readability) {
          case ILLEGIBLE: return false;
          default:
            switch(m.address) {
              case INCORRECT: return false;
              default:
                print("Delivering " + m + " normally");
              return true;
            }
        }
      }
    },
    RETURN_TO_SENDER {
      boolean handle(Mail m) {
        switch(m.returnAddress) {
          case MISSING: return false;
          default:
            print("Returning " + m + " to sender");
          return true;
        }
      }
    };
    abstract boolean handle(Mail m);
  }
  static void handle(Mail m) {
    for(MailHandler handler : MailHandler.values())
      if(handler.handle(m))
        return;
    print(m + " is a dead letter");
  }
  public static void main(String[] args) {
    for(Mail mail : Mail.generator(10)) {
      print(mail.details());
      handle(mail);
      print("*****");
    }
  }
} /* Output:
Mail 0, General Delivery: NO2, Address Scanability: UNSCANNABLE, Address Readability: YES3, Address Address: OK1, Return address: OK1
Delivering Mail 0 normally
*****
Mail 1, General Delivery: NO5, Address Scanability: YES3, Address Readability: ILLEGIBLE, Address Address: OK5, Return address: OK1
Delivering Mail 1 automatically
*****
Mail 2, General Delivery: YES, Address Scanability: YES3, Address Readability: YES1, Address Address: OK1, Return address: OK5
Using general delivery for Mail 2
*****
Mail 3, General Delivery: NO4, Address Scanability: YES3, Address Readability: YES1, Address Address: INCORRECT, Return address: OK4
Returning Mail 3 to sender
*****
Mail 4, General Delivery: NO4, Address Scanability: UNSCANNABLE, Address Readability: YES1, Address Address: INCORRECT, Return address: OK2
Returning Mail 4 to sender
*****
Mail 5, General Delivery: NO3, Address Scanability: YES1, Address Readability: ILLEGIBLE, Address Address: OK4, Return address: OK2
Delivering Mail 5 automatically
*****
Mail 6, General Delivery: YES, Address Scanability: YES4, Address Readability: ILLEGIBLE, Address Address: OK4, Return address: OK4
Using general delivery for Mail 6
*****
Mail 7, General Delivery: YES, Address Scanability: YES3, Address Readability: YES4, Address Address: OK2, Return address: MISSING
Using general delivery for Mail 7
*****
Mail 8, General Delivery: NO3, Address Scanability: YES1, Address Readability: YES3, Address Address: INCORRECT, Return address: MISSING
Mail 8 is a dead letter
*****
Mail 9, General Delivery: NO1, Address Scanability: UNSCANNABLE, Address Readability: YES2, Address Address: OK1, Return address: OK4
Delivering Mail 9 normally
*****
*///:~

枚舉類型還是創(chuàng)建狀態(tài)機(jī)的理想類型,一個(gè)狀態(tài)機(jī)可以根據(jù)輸入在有限個(gè)狀態(tài)之間移動(dòng),然后在滿足某種狀態(tài)之后結(jié)束工作,另外每個(gè)狀態(tài)都會(huì)有相應(yīng)的輸出,一個(gè)售貨機(jī)器是一個(gè)典型的狀態(tài)機(jī)的實(shí)例,我們?cè)诿杜e內(nèi)定義不同的輸入:
復(fù)制代碼 代碼如下:

//: enumerated/Input.java
package enumerated;
import java.util.*;
public enum Input {
  NICKEL(5), DIME(10), QUARTER(25), DOLLAR(100),TOOTHPASTE(200), CHIPS(75), SODA(100), SOAP(50),ABORT_TRANSACTION {
    public int amount() { // Disallow
      throw new RuntimeException("ABORT.amount()");
    }
  },
  STOP { // This must be the last instance.
    public int amount() { // Disallow
      throw new RuntimeException("SHUT_DOWN.amount()");
    }
  };
  int value; // In cents
  Input(int value) { this.value = value; }
  Input() {}
  int amount() { return value; }; // In cents
  static Random rand = new Random(47);
  public static Input randomSelection() {
    // Don't include STOP:
    return values()[rand.nextInt(values().length - 1)];
  }
} ///:~

VendingMachine用來對(duì)輸入進(jìn)行相應(yīng),首先通過Category枚舉歸類輸入,然后使用switch語句:
復(fù)制代碼 代碼如下:

//: enumerated/VendingMachine.java
// {Args: VendingMachineInput.txt}
package enumerated;
import java.util.*;
import net.mindview.util.*;
import static enumerated.Input.*;
import static net.mindview.util.Print.*;
enum Category {
  MONEY(NICKEL, DIME, QUARTER, DOLLAR),ITEM_SELECTION(TOOTHPASTE, CHIPS, SODA, SOAP),QUIT_TRANSACTION(ABORT_TRANSACTION),SHUT_DOWN(STOP);
  private Input[] values;
  Category(Input... types) { values = types; }
  private static EnumMap<Input,Category> categories = new EnumMap<Input,Category>(Input.class);
  static {
    for(Category c : Category.class.getEnumConstants())
      for(Input type : c.values)
        categories.put(type, c);
  }
  public static Category categorize(Input input) {
    return categories.get(input);
  }
}
public class VendingMachine {
  private static State state = State.RESTING;
  private static int amount = 0;
  private static Input selection = null;
  enum StateDuration { TRANSIENT } // Tagging enum
  enum State {
    RESTING {
      void next(Input input) {
        switch(Category.categorize(input)) {
          case MONEY:
            amount += input.amount();
            state = ADDING_MONEY;
            break;
          case SHUT_DOWN:
            state = TERMINAL;
          default:
        }
      }
    },
    ADDING_MONEY {
      void next(Input input) {
        switch(Category.categorize(input)) {
          case MONEY:
            amount += input.amount();
            break;
          case ITEM_SELECTION:
            selection = input;
            if(amount < selection.amount())
              print("Insufficient money for " + selection);
            else state = DISPENSING;
              break;
          case QUIT_TRANSACTION:
            state = GIVING_CHANGE;
            break;
          case SHUT_DOWN:
            state = TERMINAL;
            default:
        }
      }
    },
    DISPENSING(StateDuration.TRANSIENT) {
      void next() {
        print("here is your " + selection);
        amount -= selection.amount();
        state = GIVING_CHANGE;
      }
    },
    GIVING_CHANGE(StateDuration.TRANSIENT) {
      void next() {
        if(amount > 0) {
          print("Your change: " + amount);
          amount = 0;
        }
        state = RESTING;
      }
    },
    TERMINAL { void output() { print("Halted"); } };
    private boolean isTransient = false;
    State() {}
    State(StateDuration trans) { isTransient = true; }
    void next(Input input) {
      throw new RuntimeException("Only call " + "next(Input input) for non-transient states");
    }
    void next() {
      throw new RuntimeException("Only call next() for " + "StateDuration.TRANSIENT states");
    }
    void output() { print(amount); }
  }
  static void run(Generator<Input> gen) {
    while(state != State.TERMINAL) {
      state.next(gen.next());
      while(state.isTransient)
        state.next();
      state.output();
    }
  }
  public static void main(String[] args) {
    Generator<Input> gen = new RandomInputGenerator();
    if(args.length == 1)
      gen = new FileInputGenerator(args[0]);
    run(gen);
  }
}
// For a basic sanity check:
class RandomInputGenerator implements Generator<Input> {
  public Input next() { return Input.randomSelection(); }
}
// Create Inputs from a file of ‘;'-separated strings:
class FileInputGenerator implements Generator<Input> {
  private Iterator<String> input;
  public FileInputGenerator(String fileName) {
    input = new TextFile(fileName, ";").iterator();
  }
  public Input next() {
    if(!input.hasNext())
      return null;
    return Enum.valueOf(Input.class, input.next().trim());
  }
} /* Output:
here is your CHIPS
here is your TOOTHPASTE
Your change: 35
Insufficient money for SODA

Insufficient money for SODA
Your change: 75
Halted
*///:~

下面是用來生成上面輸出的測(cè)試數(shù)據(jù):
復(fù)制代碼 代碼如下:

QUARTER; QUARTER; QUARTER; CHIPS;
DOLLAR; DOLLAR; TOOTHPASTE;
QUARTER; DIME; ABORT_TRANSACTION;
QUARTER; DIME; SODA;
QUARTER; DIME; NICKEL; SODA;
ABORT_TRANSACTION;
STOP;
///:~

多重拆封
  當(dāng)處理多個(gè)類型之間的交互的時(shí)候代碼很有可能變得雜亂,例如Number.plush(Number),Number.mutiply(Number)等,Number僅僅是個(gè)家族的基類,那么當(dāng)你調(diào)用a.plus(b)的時(shí)候,你既不知道a的類型也不知道b的類型,那么如何保證他們之間的交互正確呢?Java只能執(zhí)行單重拆封,也就是如果在執(zhí)行多個(gè)未知類型的一個(gè)或者多個(gè)操作的時(shí)候,Java只能對(duì)其中的一個(gè)類型執(zhí)行動(dòng)態(tài)綁定機(jī)制,這樣不能解決我們上面談到的問題,因此不得不手動(dòng)書寫動(dòng)態(tài)綁定的代碼。
  解決方案是使用多重綁定。多態(tài)只能在調(diào)用方法的時(shí)候發(fā)生,因此如果你需要多重拆封,必須調(diào)用多個(gè)方法。通過多重拆封,你必須有一個(gè)虛方法來調(diào)用每個(gè)類型的方法來進(jìn)行拆封。下面的例子是一個(gè)剪刀石頭布的實(shí)例:
復(fù)制代碼 代碼如下:

//: enumerated/Outcome.java
package enumerated;
public enum Outcome { WIN, LOSE, DRAW } ///:~
//: enumerated/RoShamBo1.java
// Demonstration of multiple dispatching.
package enumerated;
import java.util.*;
import static enumerated.Outcome.*;
interface Item {
  Outcome compete(Item it);
  Outcome eval(Paper p);
  Outcome eval(Scissors s);
  Outcome eval(Rock r);
}
class Paper implements Item {
  public Outcome compete(Item it) { return it.eval(this); }
  public Outcome eval(Paper p) { return DRAW; }
  public Outcome eval(Scissors s) { return WIN; }
  public Outcome eval(Rock r) { return LOSE; }
  public String toString() { return "Paper"; }
}
class Scissors implements Item {
  public Outcome compete(Item it) { return it.eval(this); }
  public Outcome eval(Paper p) { return LOSE; }
  public Outcome eval(Scissors s) { return DRAW; }
  public Outcome eval(Rock r) { return WIN; }
  public String toString() { return "Scissors"; }
}
class Rock implements Item {
  public Outcome compete(Item it) { return it.eval(this); }
  public Outcome eval(Paper p) { return WIN; }
  public Outcome eval(Scissors s) { return LOSE; }
  public Outcome eval(Rock r) { return DRAW; }
  public String toString() { return "Rock"; }
}
public class RoShamBo1 {
  static final int SIZE = 20;
  private static Random rand = new Random(47);
  public static Item newItem() {
    switch(rand.nextInt(3)) {
      default:
      case 0: return new Scissors();
      case 1: return new Paper();
      case 2: return new Rock();
    }
  }
  public static void match(Item a, Item b) {
    System.out.println(a + " vs. " + b + ": " + a.compete(b));
  }
  public static void main(String[] args) {
    for(int i = 0; i < SIZE; i++)
      match(newItem(), newItem());
  }
} /* Output:
Rock vs. Rock: DRAW
Paper vs. Rock: WIN
Paper vs. Rock: WIN
Paper vs. Rock: WIN
Scissors vs. Paper: WIN
Scissors vs. Scissors: DRAW
Scissors vs. Paper: WIN
Rock vs. Paper: LOSE
Paper vs. Paper: DRAW
Rock vs. Paper: LOSE
Paper vs. Scissors: LOSE
Paper vs. Scissors: LOSE
Rock vs. Scissors: WIN
Rock vs. Paper: LOSE
Paper vs. Rock: WIN
Scissors vs. Paper: WIN
Paper vs. Scissors: LOSE
Paper vs. Scissors: LOSE
Paper vs. Scissors: LOSE
Paper vs. Scissors: LOSE
*///:~

我們使用了很多手段來實(shí)現(xiàn)多重拆封,但是獲得的是良好的代碼結(jié)構(gòu)。使用枚舉的解決方案來實(shí)現(xiàn)上面的代碼的時(shí)候最大的問題就是枚舉實(shí)例不是類型,因此不能使用枚舉實(shí)例來作為參數(shù)類型。但是我們還是可以有其他的方法繞狗這個(gè)障礙,一種方法就是使用構(gòu)造器來初始化每個(gè)枚舉類型,然后將輸出組織稱一個(gè)查找表:
復(fù)制代碼 代碼如下:

//: enumerated/RoShamBo2.java
// Switching one enum on another.
package enumerated;
import static enumerated.Outcome.*;
public enum RoShamBo2 implements Competitor<RoShamBo2> {
  PAPER(DRAW, LOSE, WIN),SCISSORS(WIN, DRAW, LOSE),ROCK(LOSE, WIN, DRAW);
  private Outcome vPAPER, vSCISSORS, vROCK;
  RoShamBo2(Outcome paper,Outcome scissors,Outcome rock) {
    this.vPAPER = paper;
    this.vSCISSORS = scissors;
    this.vROCK = rock;
  }
  public Outcome compete(RoShamBo2 it) {
    switch(it) {
      default:
      case PAPER: return vPAPER;
      case SCISSORS: return vSCISSORS;
      case ROCK: return vROCK;
    }
  }
  public static void main(String[] args) {
    RoShamBo.play(RoShamBo2.class, 20);
  }
} /* Output:
ROCK vs. ROCK: DRAW
SCISSORS vs. ROCK: LOSE
SCISSORS vs. ROCK: LOSE
Enumerated Types 753
SCISSORS vs. ROCK: LOSE
PAPER vs. SCISSORS: LOSE
PAPER vs. PAPER: DRAW
PAPER vs. SCISSORS: LOSE
ROCK vs. SCISSORS: WIN
SCISSORS vs. SCISSORS: DRAW
ROCK vs. SCISSORS: WIN
SCISSORS vs. PAPER: WIN
SCISSORS vs. PAPER: WIN
ROCK vs. PAPER: LOSE
ROCK vs. SCISSORS: WIN
SCISSORS vs. ROCK: LOSE
PAPER vs. SCISSORS: LOSE
SCISSORS vs. PAPER: WIN
SCISSORS vs. PAPER: WIN
SCISSORS vs. PAPER: WIN
SCISSORS vs. PAPER: WIN
*///:~

復(fù)制代碼 代碼如下:

//: enumerated/Competitor.java
// Switching one enum on another.
package enumerated;
public interface Competitor<T extends Competitor<T>> {
  Outcome compete(T competitor);
} ///:~

復(fù)制代碼 代碼如下:

//: enumerated/RoShamBo.java
// Common tools for RoShamBo examples.
package enumerated;
import net.mindview.util.*;
public class RoShamBo {
  public static <T extends Competitor<T>> void match(T a, T b) {
    System.out.println(a + " vs. " + b + ": " + a.compete(b));
  }
  public static <T extends Enum<T> & Competitor<T>> void play(Class<T> rsbClass, int size) {
    for(int i = 0; i < size; i++)
      match(Enums.random(rsbClass),Enums.random(rsbClass));
  }
} ///:~

因?yàn)橹贫o態(tài)方法可以為每個(gè)枚舉類型提供不同的方法,看起來是一個(gè)實(shí)現(xiàn)多重拆封的好解決辦法,但是還是面臨著枚舉實(shí)例不是類型的問題,于是我們能做的就是添加一個(gè)switch語句:
復(fù)制代碼 代碼如下:

//: enumerated/RoShamBo3.java
// Using constant-specific methods.
package enumerated;
import static enumerated.Outcome.*;
public enum RoShamBo3 implements Competitor<RoShamBo3> {
  PAPER {
    public Outcome compete(RoShamBo3 it) {
      switch(it) {
        default: // To placate the compiler
        case PAPER: return DRAW;
        case SCISSORS: return LOSE;
        case ROCK: return WIN;
      }
    }
  },
  SCISSORS {
    public Outcome compete(RoShamBo3 it) {
      switch(it) {
        default:
        case PAPER: return WIN;
        case SCISSORS: return DRAW;
        case ROCK: return LOSE;
      }
    }
  },
  ROCK {
    public Outcome compete(RoShamBo3 it) {
      switch(it) {
        default:
        case PAPER: return LOSE;
        case SCISSORS: return WIN;
        case ROCK: return DRAW;
      }
    }
  };
  public abstract Outcome compete(RoShamBo3 it);
  public static void main(String[] args) {
    RoShamBo.play(RoShamBo3.class, 20);
  }
} /* Same output as RoShamBo2.java *///:~

下面的代碼是一種更加簡(jiǎn)潔的實(shí)現(xiàn)方法:
復(fù)制代碼 代碼如下:

//: enumerated/RoShamBo4.java
package enumerated;
public enum RoShamBo4 implements Competitor<RoShamBo4> {
  ROCK {
    public Outcome compete(RoShamBo4 opponent) {
      return compete(SCISSORS, opponent);
    }
  },
  SCISSORS {
    public Outcome compete(RoShamBo4 opponent) {
      return compete(PAPER, opponent);
    }
  },
  PAPER {
    public Outcome compete(RoShamBo4 opponent) {
      return compete(ROCK, opponent);
    }
  };
  Outcome compete(RoShamBo4 loser, RoShamBo4 opponent) {
    return ((opponent == this) ? Outcome.DRAW: ((opponent == loser) ? Outcome.WIN: Outcome.LOSE));
  }
  public static void main(String[] args) {
    RoShamBo.play(RoShamBo4.class, 20);
  }
} /* Same output as RoShamBo2.java *///:~

EnumMap類似乎是一個(gè)可以真正實(shí)現(xiàn)多重拆封的好辦發(fā):
復(fù)制代碼 代碼如下:

//: enumerated/RoShamBo5.java
// Multiple dispatching using an EnumMap of EnumMaps.
package enumerated;
import java.util.*;
import static enumerated.Outcome.*;
enum RoShamBo5 implements Competitor<RoShamBo5> {
  PAPER, SCISSORS, ROCK;
  static EnumMap<RoShamBo5,EnumMap<RoShamBo5,Outcome>> table = new EnumMap<RoShamBo5,EnumMap<RoShamBo5,Outcome>>(RoShamBo5.class);
  static {
    for(RoShamBo5 it : RoShamBo5.values())
      table.put(it, new EnumMap<RoShamBo5,Outcome>(RoShamBo5.class));
    initRow(PAPER, DRAW, LOSE, WIN);
    initRow(SCISSORS, WIN, DRAW, LOSE);
    initRow(ROCK, LOSE, WIN, DRAW);
  }
  static void initRow(RoShamBo5 it, Outcome vPAPER, Outcome vSCISSORS, Outcome vROCK) {
    EnumMap<RoShamBo5,Outcome> row = RoShamBo5.table.get(it);
    row.put(RoShamBo5.PAPER, vPAPER);
    row.put(RoShamBo5.SCISSORS, vSCISSORS);
    row.put(RoShamBo5.ROCK, vROCK);
  }
  public Outcome compete(RoShamBo5 it) {
    return table.get(this).get(it);
  }
  public static void main(String[] args) {
    RoShamBo.play(RoShamBo5.class, 20);
  }
} /* Same output as RoShamBo2.java *///:~

我們還可以使用枚舉實(shí)例具有固定值的特點(diǎn)來使用數(shù)據(jù)進(jìn)行最簡(jiǎn)單的實(shí)現(xiàn)方法,這里使用一個(gè)二維數(shù)組進(jìn)行映射來實(shí)現(xiàn):
復(fù)制代碼 代碼如下:

//: enumerated/RoShamBo6.java
// Enums using "tables" instead of multiple dispatch.
package enumerated;
import static enumerated.Outcome.*;
enum RoShamBo6 implements Competitor<RoShamBo6> {
  PAPER, SCISSORS, ROCK;
  private static Outcome[][] table = {
    { DRAW, LOSE, WIN }, // PAPER
    { WIN, DRAW, LOSE }, // SCISSORS
    { LOSE, WIN, DRAW }, // ROCK
  };
  public Outcome compete(RoShamBo6 other) {
    return table[this.ordinal()][other.ordinal()];
  }
  public static void main(String[] args) {
    RoShamBo.play(RoShamBo6.class, 20);
  }
} ///:~

相關(guān)文章

  • java實(shí)現(xiàn)將數(shù)字轉(zhuǎn)換成人民幣大寫

    java實(shí)現(xiàn)將數(shù)字轉(zhuǎn)換成人民幣大寫

    前面給大家介紹過使用javascript,php,c#,python等語言實(shí)現(xiàn)人民幣大寫格式化,這篇文章主要介紹了java實(shí)現(xiàn)將數(shù)字轉(zhuǎn)換成人民幣大寫的代碼,非常的簡(jiǎn)單實(shí)用,分享給大家,需要的朋友可以參考下
    2015-04-04
  • Java中的線程安全問題詳細(xì)解析

    Java中的線程安全問題詳細(xì)解析

    這篇文章主要介紹了Java中的線程安全問題詳細(xì)解析,線程安全是如果有多個(gè)線程在同時(shí)運(yùn)行,而這些線程可能會(huì)同時(shí)運(yùn)行這段代碼,程序每次運(yùn)行結(jié)果和單線程運(yùn)行的結(jié)果是一樣的,而且其他的變量的值也和預(yù)期的是一樣的,此時(shí)我們就稱之為是線程安全的,需要的朋友可以參考下
    2023-11-11
  • Java數(shù)字圖像處理之圖像灰度處理

    Java數(shù)字圖像處理之圖像灰度處理

    這篇文章主要為大家詳細(xì)介紹了Java數(shù)字圖像處理之圖像灰度處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Javadoc 具體使用詳解

    Javadoc 具體使用詳解

    這篇文章主要介紹了Javadoc 具體使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java源碼解析LinkedList

    Java源碼解析LinkedList

    今天小編就為大家分享一篇關(guān)于Java源碼解析LinkedList,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Springboot通過谷歌Kaptcha?組件生成圖形驗(yàn)證碼功能

    Springboot通過谷歌Kaptcha?組件生成圖形驗(yàn)證碼功能

    Kaptcha是谷歌開源的一款簡(jiǎn)單實(shí)用的圖形驗(yàn)證碼組件。我個(gè)人推薦它的最大原因是容易上手,采用約定大于配置的方式,快速契合到項(xiàng)目中,這篇文章主要介紹了Springboot通過谷歌Kaptcha組件生成圖形驗(yàn)證碼的方法,需要的朋友可以參考下
    2023-05-05
  • Java獲取UTC時(shí)間的方法詳解

    Java獲取UTC時(shí)間的方法詳解

    這篇文章主要介紹了Java獲取UTC時(shí)間的方法,結(jié)合具體實(shí)例形式詳細(xì)分析了Java針對(duì)時(shí)區(qū)、本地時(shí)間、時(shí)間偏移量等相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • SpringMVC結(jié)合ajaxfileupload實(shí)現(xiàn)文件無刷新上傳代碼

    SpringMVC結(jié)合ajaxfileupload實(shí)現(xiàn)文件無刷新上傳代碼

    本篇文章主要介紹了SpringMVC結(jié)合ajaxfileupload實(shí)現(xiàn)文件無刷新上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Java設(shè)計(jì)模式之責(zé)任鏈模式詳解

    Java設(shè)計(jì)模式之責(zé)任鏈模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之責(zé)任鏈模式詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python實(shí)現(xiàn)高斯模糊及原理詳解

    python實(shí)現(xiàn)高斯模糊及原理詳解

    高斯模糊是一種常見的模糊技術(shù),本文主要介紹了python實(shí)現(xiàn)高斯模糊及原理詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論

亚洲欧美综合在线探花| 中文字幕之无码色多多| 国产变态另类在线观看| 日韩精品一区二区三区在线播放| 不卡一区一区三区在线| 夜夜骑夜夜操夜夜奸| 国产欧美精品不卡在线| 国内自拍第一页在线观看| 摧残蹂躏av一二三区| 又色又爽又黄的美女裸体| 一本一本久久a久久精品综合不卡| 日韩欧美高清免费在线| 精品亚洲国产中文自在线| 自拍偷拍vs一区二区三区| 国产视频在线视频播放| 精品一线二线三线日本| 沈阳熟妇28厘米大战黑人| 自拍偷拍亚洲另类色图| 日日操夜夜撸天天干| 93精品视频在线观看| 亚洲欧美清纯唯美另类| 国产精品系列在线观看一区二区| 中文亚洲欧美日韩无线码| 国产视频一区在线观看| 精品老妇女久久9g国产| 首之国产AV医生和护士小芳| 亚洲综合一区二区精品久久| 日韩北条麻妃一区在线| 一区国内二区日韩三区欧美| 亚洲欧美一区二区三区爱爱动图| 亚洲国产精品中文字幕网站| 亚洲综合一区成人在线| 黄色资源视频网站日韩| 欧亚乱色一区二区三区| 色av色婷婷人妻久久久精品高清| 青青青视频自偷自拍38碰| 自拍偷拍 国产资源| 欧美日韩情色在线观看| 中文字幕人妻一区二区视频| 最新中文字幕乱码在线| 天天射夜夜操综合网| 日韩av大胆在线观看| 欧美一区二区三区啪啪同性| 久久热久久视频在线观看| 在线观看视频污一区| 国产女人叫床高潮大片视频| huangse网站在线观看| 色天天天天射天天舔| 成人免费做爰高潮视频| 青青草精品在线视频观看| 无忧传媒在线观看视频| 在线 中文字幕 一区| 99热久久这里只有精品8| 换爱交换乱高清大片| 91久久国产成人免费网站| av高潮迭起在线观看| 日韩剧情片电影在线收看| 91精品国产黑色丝袜| 黄片大全在线观看观看| 欧美一区二区三区在线资源| av手机在线观播放网站| 欧洲黄页网免费观看| 一级黄片大鸡巴插入美女| 97资源人妻免费在线视频| 激情内射在线免费观看| 黑人解禁人妻叶爱071| 免费国产性生活视频| 全国亚洲男人的天堂| av乱码一区二区三区| 亚洲一区自拍高清免费视频| 国产精品一区二区三区蜜臀av| 91精品国产麻豆国产| 亚洲中文字字幕乱码| xxx日本hd高清| 97国产在线观看高清| 欧美色呦呦最新网址| 噜噜色噜噜噜久色超碰| 97精品成人一区二区三区| 我想看操逼黄色大片| 中文字幕高清在线免费播放| 日韩少妇人妻精品无码专区| 日韩激情文学在线视频| 风流唐伯虎电视剧在线观看| 最新国产亚洲精品中文在线| 欧美第一页在线免费观看视频| 女同久久精品秋霞网| 日本最新一二三区不卡在线 | 亚洲自拍偷拍精品网| 桃色视频在线观看一区二区 | 偷拍自拍福利视频在线观看| 日美女屁股黄邑视频| 91中文字幕最新合集| 亚洲无线观看国产高清在线| 久久热这里这里只有精品| 亚洲另类综合一区小说| 亚洲人妻视频在线网| 老鸭窝在线观看一区| 啊啊啊视频试看人妻| 一区二区三区av高清免费| 色花堂在线av中文字幕九九| 国产极品精品免费视频| 亚洲欧洲av天堂综合| 一色桃子人妻一区二区三区| 日本av高清免费网站| 美女操逼免费短视频下载链接| 青青青青青青青在线播放视频| 都市激情校园春色狠狠| 欧美香蕉人妻精品一区二区| 男人的天堂av日韩亚洲| 国产欧美精品一区二区高清| 国产一区成人在线观看视频 | 欧美亚洲中文字幕一区二区三区 | 91精品国产91久久自产久强| 中英文字幕av一区| 国产亚洲精品欧洲在线观看| 喷水视频在线观看这里只有精品 | 福利一二三在线视频观看| 特大黑人巨大xxxx| 国产激情av网站在线观看| 日韩av大胆在线观看| 亚洲国产免费av一区二区三区 | 女人精品内射国产99| 亚洲一区二区三区五区| 欧美成人一二三在线网| 欧美 亚洲 另类综合| 老有所依在线观看完整版 | 91亚洲精品干熟女蜜桃频道| 天天日天天干天天要| av手机免费在线观看高潮| 国产白袜脚足J棉袜在线观看| 毛片一级完整版免费| 在线免费观看日本片| 亚洲精品一区二区三区老狼| 曰本无码人妻丰满熟妇啪啪| 亚洲av琪琪男人的天堂| 青青青视频自偷自拍38碰| 中文字幕在线欧美精品| 中文字幕一区二区自拍| 亚洲av日韩av网站| 日日操综合成人av| 亚洲av自拍偷拍综合| 国产精品自拍偷拍a| 黑人解禁人妻叶爱071| 2020av天堂网在线观看| 亚洲熟妇久久无码精品| 亚洲国产成人无码麻豆艾秋| 日本免费一级黄色录像| 国产麻豆剧传媒精品国产av蜜桃| 免费在线看的黄片视频| 精品国产高潮中文字幕| 日韩中文字幕福利av| okirakuhuhu在线观看| 欧亚日韩一区二区三区观看视频| 日本精品一区二区三区在线视频。| 黑人巨大精品欧美视频| 92福利视频午夜1000看| 红杏久久av人妻一区| 一区二区免费高清黄色视频| 日本黄色三级高清视频| 青青伊人一精品视频| 国产高潮无码喷水AV片在线观看| xxx日本hd高清| 中文字幕高清在线免费播放 | 日韩少妇人妻精品无码专区| 狠狠鲁狠狠操天天晚上干干| 大骚逼91抽插出水视频| 亚洲在线免费h观看网站| 午夜av一区二区三区| 快插进小逼里大鸡吧视频| 伊人精品福利综合导航| 被大鸡吧操的好舒服视频免费| 日本少妇人妻xxxxxhd| 欧美一区二区三区啪啪同性| 超碰97人人做人人爱| 亚洲高清一区二区三区视频在线| 91在线免费观看成人| 啪啪啪啪啪啪啪免费视频| 视频 国产 精品 熟女 | 欧美成人猛片aaaaaaa| 亚洲欧美激情国产综合久久久 | 999热精品视频在线| 都市激情校园春色狠狠| 91人妻人人做人人爽在线| 久久久久久久精品成人热| 国产不卡av在线免费| 亚洲一区二区三区五区| 69精品视频一区二区在线观看| 亚洲欧洲av天堂综合| 午夜av一区二区三区| 干逼又爽又黄又免费的视频| 1769国产精品视频免费观看| 免费手机黄页网址大全| 中文字幕国产专区欧美激情| 亚洲欧美在线视频第一页| 国产日韩欧美美利坚蜜臀懂色| 色爱av一区二区三区| 国产一区av澳门在线观看| 激情啪啪啪啪一区二区三区| 男人的天堂在线黄色| 五十路熟女人妻一区二| 午夜免费体验区在线观看| 亚洲中文字幕乱码区| 最新91精品视频在线| 亚洲一级av大片免费观看| 狠狠躁夜夜躁人人爽天天天天97| 日本少妇的秘密免费视频| 视频一区二区三区高清在线| 亚洲综合在线观看免费| 国产又粗又猛又爽又黄的视频美国| 成人av天堂丝袜在线观看| 熟女国产一区亚洲中文字幕| 91亚洲精品干熟女蜜桃频道| 人妻av无码专区久久绿巨人| 强行扒开双腿猛烈进入免费版 | 亚洲午夜伦理视频在线| 亚洲在线免费h观看网站| 亚洲av色图18p| 2021年国产精品自拍| 1区2区3区4区视频在线观看| 蜜桃视频入口久久久| 国产普通话插插视频| 久久久久久久一区二区三| 日韩精品电影亚洲一区| 99久久中文字幕一本人| 粉嫩欧美美人妻小视频| 天天日天天日天天擦| 亚洲天堂精品福利成人av| 丰满少妇人妻xxxxx| 天堂av在线播放免费| av日韩在线免费播放| 91小伙伴中女熟女高潮| 大鸡巴插入美女黑黑的阴毛| 国产精品亚洲а∨天堂免| 久草免费人妻视频在线| 爆乳骚货内射骚货内射在线 | 热思思国产99re| 亚洲综合自拍视频一区| 大香蕉日本伊人中文在线| 国产精品久久久久久久久福交| 韩国AV无码不卡在线播放| 日韩在线视频观看有码在线| 免费观看理论片完整版| 亚洲天堂有码中文字幕视频| 天天色天天操天天透| 欧美特色aaa大片| mm131美女午夜爽爽爽| 美女福利视频导航网站| 五月天色婷婷在线观看视频免费| 一区二区三区四区视频| 国产无遮挡裸体免费直播视频| 国产精品精品精品999| 欧美一区二区三区在线资源| 日日操夜夜撸天天干| 特大黑人巨大xxxx| 日韩不卡中文在线视频网站| 99精品免费久久久久久久久a| 久久久91蜜桃精品ad| 99av国产精品欲麻豆| 精品高跟鞋丝袜一区二区| 被大鸡吧操的好舒服视频免费| 亚洲日本一区二区三区| 国产av一区2区3区| 日日夜夜大香蕉伊人| 中文字幕最新久久久| 韩国AV无码不卡在线播放| 一区二区视频视频视频| 午夜精品在线视频一区| 人妻少妇精品久久久久久| 欧美日韩国产一区二区三区三州| 国产三级影院在线观看| 一色桃子久久精品亚洲 | 天堂资源网av中文字幕| 亚洲精品中文字幕下载| www,久久久,com| 中文字幕日韩精品就在这里| 成人24小时免费视频| 国产精彩对白一区二区三区| 黄色男人的天堂视频| 亚洲欧美色一区二区| 国产日韩一区二区在线看| 欧洲亚洲欧美日韩综合| 偷偷玩弄新婚人妻h视频| 97超碰人人搞人人| 国产黑丝高跟鞋视频在线播放| 日韩亚洲高清在线观看| 亚洲 中文 自拍 另类 欧美| 视频久久久久久久人妻| 女蜜桃臀紧身瑜伽裤| 国产变态另类在线观看| 亚洲国产精品久久久久久6| 亚洲欧美日韩视频免费观看| 青娱乐极品视频青青草| 国产精品黄色的av| 国产乱子伦精品视频潮优女| 久久久制服丝袜中文字幕| 中文字幕高清资源站| 天天夜天天日天天日| 亚洲变态另类色图天堂网| 绝顶痉挛大潮喷高潮无码| 日本少妇的秘密免费视频| 日本黄色特一级视频| 岛国青草视频在线观看| 57pao国产一区二区| 天天做天天干天天操天天射| 久久精品久久精品亚洲人| 在线观看国产网站资源| 黄色片一级美女黄色片| 亚洲国产香蕉视频在线播放| 成年人的在线免费视频| 人妻久久无码中文成人| 亚洲国产在线精品国偷产拍 | 国产露脸对白在线观看| 97成人免费在线观看网站| 91欧美在线免费观看| 青青在线视频性感少妇和隔壁黑丝| 精品视频中文字幕在线播放| 精品黑人巨大在线一区| 亚洲 中文 自拍 另类 欧美| aiss午夜免费视频| 91久久精品色伊人6882| 亚洲精品福利网站图片| 日韩欧美制服诱惑一区在线| 人妻无码色噜噜狠狠狠狠色| 真实国模和老外性视频| 亚洲另类综合一区小说| 日韩人妻丝袜中文字幕| 区一区二区三国产中文字幕| 欧美日韩高清午夜蜜桃大香蕉| 99精品国自产在线人| 欧美精产国品一二三产品价格| 一区二区三区四区五区性感视频| 人妻3p真实偷拍一二区| 少妇人妻久久久久视频黄片| 亚国产成人精品久久久| 初美沙希中文字幕在线| 亚洲一区二区三区五区| 亚洲视频乱码在线观看| 色噜噜噜噜18禁止观看| 久久丁香花五月天色婷婷| 激情色图一区二区三区| 精品91高清在线观看| 亚洲一区二区三区av网站| 超鹏97历史在线观看| 国产三级影院在线观看| 天天操天天干天天艹| 蜜桃色婷婷久久久福利在线| 一二三中文乱码亚洲乱码one| 熟女俱乐部一二三区| 可以在线观看的av中文字幕| 亚洲高清自偷揄拍自拍| 高清一区二区欧美系列| 精品人人人妻人人玩日产欧| 最新91九色国产在线观看| 中文亚洲欧美日韩无线码| 日本高清在线不卡一区二区| 日本特级片中文字幕| 福利在线视频网址导航| 十八禁在线观看地址免费| 在线 中文字幕 一区| 韩国三级aaaaa高清视频 | 男人操女人逼逼视频网站| 大香蕉福利在线观看| 91精品高清一区二区三区| 沙月文乃人妻侵犯中文字幕在线 | 成人激情文学网人妻| 国产一线二线三线的区别在哪| 亚洲美女自偷自拍11页| 欧美偷拍亚洲一区二区| 69精品视频一区二区在线观看| 免费福利av在线一区二区三区| 97精品视频在线观看| 在线视频这里只有精品自拍| 蜜桃视频入口久久久| 日韩三级黄色片网站| 久久久极品久久蜜桃| 中文字幕一区二区人妻电影冢本| AV无码一区二区三区不卡| 一区二区三区毛片国产一区| 午夜久久香蕉电影网| 日日操夜夜撸天天干| 一个色综合男人天堂| jiujiure精品视频在线| 精品久久久久久久久久久久人妻| 青青青青青青青青青青草青青| 青青青青爽手机在线| 一二三中文乱码亚洲乱码one| 久久机热/这里只有| 人妻少妇精品久久久久久| 国产免费高清视频视频| 国产大鸡巴大鸡巴操小骚逼小骚逼| 午夜91一区二区三区| 亚洲 色图 偷拍 欧美| 91老师蜜桃臀大屁股| 丝袜亚洲另类欧美变态| 国产精品黄页网站视频| 青青青国产片免费观看视频| 国产欧美精品不卡在线| 欧美爆乳肉感大码在线观看| 中文字幕中文字幕人妻| 日日夜夜精品一二三| 97国产在线av精品| 色秀欧美视频第一页| 亚洲1卡2卡三卡4卡在线观看| 中文字幕av第1页中文字幕| 天天草天天色天天干| 蜜桃视频在线欧美一区| 亚洲男人让女人爽的视频| 亚洲人人妻一区二区三区| 污污小视频91在线观看| 天天日天天日天天射天天干| 天天草天天色天天干| 国产清纯美女al在线| 亚洲欧美国产麻豆综合| 一区国内二区日韩三区欧美| 亚洲Av无码国产综合色区| 青青伊人一精品视频| 熟女妇女老妇一二三区| 动漫av网站18禁| 久久久久久国产精品| 国产精品久久久久久美女校花| 天天日天天干天天要| 亚洲 清纯 国产com| 人妻激情图片视频小说| 黄片三级三级三级在线观看| 1769国产精品视频免费观看| 久久久精品国产亚洲AV一| 国语对白xxxx乱大交| 东京干手机福利视频| 人妻少妇性色欲欧美日韩| 社区自拍揄拍尻屁你懂的| sspd152中文字幕在线| 中国老熟女偷拍第一页| 午夜精品一区二区三区城中村| 欲乱人妻少妇在线视频裸| 欧美日本在线观看一区二区| 91九色国产porny蝌蚪| 国产成人自拍视频在线免费观看| 综合国产成人在线观看| 五十路丰满人妻熟妇| 日本特级片中文字幕| 又色又爽又黄又刺激av网站| 国产一区自拍黄视频免费观看| 亚洲av琪琪男人的天堂| 亚洲一区二区久久久人妻| 亚洲国产40页第21页| 大鸡巴操b视频在线| 日本一本午夜在线播放| 伊人情人综合成人久久网小说 | 精品人妻每日一部精品| 欧美一区二区三区四区性视频| 欧美一级视频一区二区| 午夜精品在线视频一区| av线天堂在线观看| 欧美视频综合第一页| 少妇露脸深喉口爆吞精| 亚洲中文字幕乱码区| 亚洲国产免费av一区二区三区| 蜜臀成人av在线播放| 欧美亚洲国产成人免费在线| 新婚人妻聚会被中出| 国产麻豆91在线视频| 久久永久免费精品人妻专区| 欧美色婷婷综合在线| 中文字幕成人日韩欧美| 欧美熟妇一区二区三区仙踪林| 欧亚乱色一区二区三区| 欧美3p在线观看一区二区三区| 涩涩的视频在线观看视频| 国产实拍勾搭女技师av在线| 国产在线一区二区三区麻酥酥| av在线shipin| 天天做天天爽夜夜做少妇| 亚洲av日韩av第一区二区三区| 亚洲欧美自拍另类图片| 国产欧美精品不卡在线| 日韩av熟妇在线观看| 色秀欧美视频第一页| weyvv5国产成人精品的视频| 欧美精品一区二区三区xxxx| 成人av在线资源网站| 日本少妇在线视频大香蕉在线观看 | 亚洲欧美综合另类13p| 久久久极品久久蜜桃| 欧美另类重口味极品在线观看| 日韩av有码中文字幕| 亚洲成人国产综合一区| 骚逼被大屌狂草视频免费看| 欧美麻豆av在线播放| 亚洲av男人天堂久久| 97精品人妻一区二区三区精品| 国产黑丝高跟鞋视频在线播放| 成人伊人精品色xxxx视频| 丝袜肉丝一区二区三区四区在线看| 成人av免费不卡在线观看| 日本少妇人妻xxxxx18| 国产亚洲欧美45p| 丰满少妇人妻xxxxx| 亚洲成a人片777777| 无码精品一区二区三区人| 一区二区三区四区视频| 欧美爆乳肉感大码在线观看| 欧美成人小视频在线免费看| 岛国青草视频在线观看| lutube在线成人免费看| 天堂av在线播放免费| 日韩美女综合中文字幕pp| 色婷婷精品大在线观看| 欧美视频一区免费在线| 青青擦在线视频国产在线| 伊人成人在线综合网| 熟女视频一区,二区,三区| 亚洲国际青青操综合网站| 亚洲av日韩高清hd| 国产午夜激情福利小视频在线| 精品区一区二区三区四区人妻 | 特大黑人巨大xxxx| 真实国模和老外性视频| 天堂资源网av中文字幕| 人妻无码中文字幕专区| 女生被男生插的视频网站| 亚洲天堂精品久久久| 在线免费观看av日韩| 午夜毛片不卡在线看| 青青草原网站在线观看| 成人精品在线观看视频| 亚洲福利精品视频在线免费观看| 青青青艹视频在线观看| 91欧美在线免费观看| 国产白嫩美女一区二区| 夫妻在线观看视频91| 少妇一区二区三区久久久| 日韩在线视频观看有码在线| 中文字幕在线乱码一区二区| 色综合久久五月色婷婷综合| 日韩美女精品视频在线观看网站 | 色呦呦视频在线观看视频| 天堂av在线最新版在线| 强行扒开双腿猛烈进入免费版| 亚洲午夜精品小视频| 欧美80老妇人性视频| 91国偷自产一区二区三区精品| 夜色17s精品人妻熟女| 国产欧美精品不卡在线| 经典国语激情内射视频| 精品国产污污免费网站入口自| aⅴ五十路av熟女中出| 91精品国产高清自在线看香蕉网| 999九九久久久精品| 精品久久久久久久久久久99| 国产白嫩美女一区二区| 后入美女人妻高清在线| 888欧美视频在线| 91中文字幕免费在线观看| 在线观看的a站 最新| 啪啪啪啪啪啪啪啪啪啪黄色| 91av中文视频在线| 无码国产精品一区二区高潮久久4 日韩欧美一级精品在线观看 | 一区二区久久成人网| 91国产在线视频免费观看| 免费在线福利小视频| 美女福利视频导航网站| 亚洲国产欧美一区二区三区久久| 天码人妻一区二区三区在线看| 欧美80老妇人性视频| 绝顶痉挛大潮喷高潮无码| 亚洲成人av一区在线| 天天日天天干天天爱| 玩弄人妻熟妇性色av少妇| 国产高潮无码喷水AV片在线观看| 国产午夜亚洲精品麻豆| av手机在线免费观看日韩av| 韩国男女黄色在线观看| 成人性爱在线看四区| 日韩精品中文字幕播放| 韩国三级aaaaa高清视频| 午夜激情精品福利视频| 国产精品视频一区在线播放| 91在线视频在线精品3| 欧美一区二区三区高清不卡tv| 丝袜肉丝一区二区三区四区在线| 久久麻豆亚洲精品av| av在线免费观看亚洲天堂| 欧美黑人巨大性xxxxx猛交| 中文字幕一区二区人妻电影冢本| 亚洲 图片 欧美 图片| 国产1区,2区,3区| 亚洲国产精品中文字幕网站| 在线观看av2025| 农村胖女人操逼视频| 91破解版永久免费| 日本免费视频午夜福利视频| 欧美特级特黄a大片免费| 亚洲免费va在线播放| 91中文字幕免费在线观看| 99热色原网这里只有精品| tube69日本少妇| 欧美专区第八页一区在线播放 | 国产福利小视频大全| 欧美日韩一区二区电影在线观看| 久久香蕉国产免费天天| 日韩欧美一级黄片亚洲| 亚洲最大黄 嗯色 操 啊| 天天操天天干天天艹| 一级黄片久久久久久久久| 亚洲天堂精品福利成人av| 久久久久久性虐视频| 国产大学生援交正在播放| av破解版在线观看| 欧美精品黑人性xxxx| 亚洲成高清a人片在线观看| 中文字幕 亚洲av| av天堂中文字幕最新| 日本美女性生活一级片| 亚洲免费视频欧洲免费视频| 特黄老太婆aa毛毛片| 亚洲av一妻不如妾| 国产日本欧美亚洲精品视| 一区二区三区欧美日韩高清播放| 丝袜长腿第一页在线| 人人妻人人爱人人草| 五十路在线观看完整版| 亚洲一区二区三区五区 | 青青热久免费精品视频在线观看| 国产V亚洲V天堂无码欠欠| 欧美特色aaa大片| 插小穴高清无码中文字幕| 亚洲成人三级在线播放| 久草极品美女视频在线观看| 啊啊啊视频试看人妻| 亚洲午夜电影之麻豆| www日韩a级s片av| 一区二区三区美女毛片| 91传媒一区二区三区| 久草视频在线一区二区三区资源站| 91国语爽死我了不卡| free性日本少妇| 2020中文字幕在线播放| 蜜臀av久久久久久久| 亚洲国产在人线放午夜| 欧美第一页在线免费观看视频| 亚洲美女高潮喷浆视频| 亚洲综合另类精品小说| 超碰中文字幕免费观看| 日韩欧美中文国产在线| 亚洲一区二区三区五区| 女生被男生插的视频网站| 国产视频网站国产视频| 93人妻人人揉人人澡人人| 亚洲在线免费h观看网站| 男女第一次视频在线观看| 日本熟女精品一区二区三区| av乱码一区二区三区| 在线观看黄色成年人网站| 日韩激情文学在线视频| 中文字幕在线一区精品| 天天射夜夜操综合网| 国产女人被做到高潮免费视频 | 五月精品丁香久久久久福利社| 色偷偷伊人大杳蕉综合网| 美女福利写真在线观看视频| 欧美精品中文字幕久久二区| 天天干天天操天天爽天天摸| 夜色撩人久久7777| 免费成人va在线观看| 欧美韩国日本国产亚洲| 亚洲成人黄色一区二区三区| 免费在线观看视频啪啪| yy6080国产在线视频| 成人免费公开视频无毒| 成人高潮aa毛片免费| 亚洲人妻国产精品综合| 青草青永久在线视频18| 亚洲男人让女人爽的视频| 天堂v男人视频在线观看| 18禁精品网站久久| 精品高潮呻吟久久av| 日日夜夜大香蕉伊人| 一区二区三区四区五区性感视频| 亚洲码av无色中文| 免费在线观看污污视频网站| 人妻无码中文字幕专区| 99热色原网这里只有精品| 在线观看成人国产电影| 嫩草aⅴ一区二区三区| 美女少妇亚洲精选av| 快点插进来操我逼啊视频| 自拍偷拍亚洲另类色图| 91国产在线免费播放| 亚洲蜜臀av一区二区三区九色| 都市激情校园春色狠狠| 日视频免费在线观看| 亚洲熟妇x久久av久久| 亚洲精品午夜久久久久| 亚洲精品一线二线在线观看| 色偷偷伊人大杳蕉综合网| 亚洲精品久久视频婷婷| 国产精品成久久久久三级蜜臀av | 一区二区三区四区五区性感视频 | 一级a看免费观看网站| 亚洲 中文 自拍 无码| 亚洲av黄色在线网站| 在线观看国产网站资源| 在线观看一区二区三级| 国产成人精品福利短视频| 日日夜夜精品一二三| 成年人该看的视频黄免费| 国产精品成久久久久三级蜜臀av| 青青青国产片免费观看视频 | 女人精品内射国产99| 啪啪啪18禁一区二区三区| 性欧美激情久久久久久久| 欧美老鸡巴日小嫩逼| 亚洲最大黄了色网站| 欧美va不卡视频在线观看| 久久麻豆亚洲精品av| 91精品国产麻豆国产| av乱码一区二区三区| 大香蕉大香蕉在线看| 久草福利电影在线观看| 天天艹天天干天天操| 偷拍自拍视频图片免费| 久久久精品欧洲亚洲av| 欧美一区二区三区激情啪啪啪| 老有所依在线观看完整版| 99热久久这里只有精品8| 视频啪啪啪免费观看| 黄色成年网站午夜在线观看 | 日韩黄色片在线观看网站| 亚洲av一妻不如妾| 真实国模和老外性视频| 日韩成人性色生活片| 国产在线免费观看成人| 18禁精品网站久久| 亚洲免费成人a v| 最新91九色国产在线观看| 亚洲福利午夜久久久精品电影网| 国产午夜无码福利在线看| 91久久综合男人天堂| 亚洲av日韩高清hd| 91九色porny国产在线| 新婚人妻聚会被中出| 日韩欧美中文国产在线| 亚洲成人熟妇一区二区三区 | 国产日韩一区二区在线看 | 精品国产乱码一区二区三区乱| 中文字幕熟女人妻久久久| 91精品国产高清自在线看香蕉网| 中文字幕午夜免费福利视频| 免费岛国喷水视频在线观看| 亚洲区美熟妇久久久久| 99久久成人日韩欧美精品| 成人综合亚洲欧美一区| 免费观看丰满少妇做受| 九色视频在线观看免费| 中英文字幕av一区| asmr福利视频在线观看| 国产老熟女伦老熟妇ⅹ| 熟女91pooyn熟女| 精品区一区二区三区四区人妻| 精彩视频99免费在线| 男女啪啪视频免费在线观看| 中文字幕在线视频一区二区三区| 美洲精品一二三产区区别| 亚洲综合一区二区精品久久| 亚洲偷自拍高清视频| 青青草人人妻人人妻| 噜噜色噜噜噜久色超碰| av日韩在线观看大全| 成人区人妻精品一区二视频| 亚洲国产成人在线一区| 狠狠躁夜夜躁人人爽天天天天97| 色秀欧美视频第一页| 又黄又刺激的午夜小视频| 韩国男女黄色在线观看| 97超碰国语国产97超碰| 日韩加勒比东京热二区| 热久久只有这里有精品| 亚洲高清国产一区二区三区| 一区二区在线视频中文字幕| 中文字幕中文字幕 亚洲国产| 成人H精品动漫在线无码播放| 日本最新一二三区不卡在线 | 99久久99久国产黄毛片| 一区二区三区蜜臀在线| 日本女大学生的黄色小视频| 欧美一区二区三区四区性视频| 老司机福利精品视频在线| 婷婷色中文亚洲网68| 2022精品久久久久久中文字幕| 欧美日本在线观看一区二区| 美女福利写真在线观看视频| 韩国男女黄色在线观看| 青草久久视频在线观看| 98视频精品在线观看| 欧美成一区二区三区四区| 欧美激情电影免费在线| 在线免费观看靠比视频的网站| 1769国产精品视频免费观看| 亚洲综合图片20p| av成人在线观看一区| 亚洲人妻30pwc| 欧美色婷婷综合在线| 亚洲精品国产久久久久久| 只有精品亚洲视频在线观看| 久久丁香花五月天色婷婷| 日本熟妇一区二区x x| 人妻熟女中文字幕aⅴ在线| 粉嫩av蜜乳av蜜臀| 欧洲国产成人精品91铁牛tv| 欲满人妻中文字幕在线| 欧美视频综合第一页| av网址国产在线观看| 狠狠地躁夜夜躁日日躁| 亚洲精品麻豆免费在线观看| 亚洲精品乱码久久久本| 天天干天天操天天摸天天射| 在线观看视频一区麻豆| 夜色福利视频在线观看| 91色九色porny| 玖玖一区二区在线观看| 精品一区二区三区午夜| av线天堂在线观看| 国产精品自拍在线视频| 天天干天天啪天天舔| 在线观看视频网站麻豆| 一区二区三区日韩久久| 成人av亚洲一区二区| 亚洲天堂精品久久久| 天天干夜夜操天天舔| 天堂中文字幕翔田av| 久久精品亚洲成在人线a| 久久精品在线观看一区二区| 家庭女教师中文字幕在线播放| 欧美80老妇人性视频| 亚洲综合乱码一区二区| 国产亚洲欧美45p| 天天躁夜夜躁日日躁a麻豆| 在线观看视频一区麻豆| 精品国产在线手机在线| 中文字幕最新久久久| 亚洲一区二区激情在线| av成人在线观看一区| 又粗又长 明星操逼小视频| 欧美日韩熟女一区二区三区| 女警官打开双腿沦为性奴| 日韩美av高清在线| 午夜精品久久久久久99热| 日本精品视频不卡一二三| 第一福利视频在线观看 | 亚洲精品 日韩电影| 五月婷婷在线观看视频免费| 99精品亚洲av无码国产另类| 在线观看免费av网址大全| 狠狠躁夜夜躁人人爽天天久天啪| 久久久精品国产亚洲AV一 | 91极品新人『兔兔』精品新作| 成人高潮aa毛片免费| 91久久综合男人天堂| 亚洲特黄aaaa片| 91啪国自产中文字幕在线| 中文乱理伦片在线观看| 啪啪啪啪啪啪啪免费视频| 香蕉av影视在线观看| 毛片一级完整版免费| 亚洲特黄aaaa片| 成人高清在线观看视频| av在线免费资源站| 精品视频国产在线观看| 青青擦在线视频国产在线| 亚洲午夜福利中文乱码字幕| 中文字幕日韩精品日本| 亚洲第一黄色在线观看| 欧美亚洲自偷自拍 在线| 日本在线一区二区不卡视频| 国产女人露脸高潮对白视频 | 欧美成人精品在线观看| 大香蕉日本伊人中文在线| 欧美一区二区三区啪啪同性| 99一区二区在线观看| 五月精品丁香久久久久福利社| av一区二区三区人妻| 国产亚洲欧美视频网站| 99精品久久久久久久91蜜桃| 欧美一区二区三区乱码在线播放| 亚洲男人的天堂a在线| 在线观看成人国产电影| 国产亚洲精品品视频在线| 99热这里只有精品中文| 亚洲一级av无码一级久久精品| mm131美女午夜爽爽爽| 91‖亚洲‖国产熟女| 亚洲人成精品久久久久久久| 免费观看理论片完整版| 一区二区久久成人网| 又大又湿又爽又紧A视频| 中文字幕中文字幕人妻| 99久久久无码国产精品性出奶水| 午夜成午夜成年片在线观看 | 亚洲欧美激情中文字幕| 9久在线视频只有精品| 亚洲精品国品乱码久久久久| 成年人午夜黄片视频资源| 亚洲人一区二区中文字幕| 欧美精品 日韩国产| 老熟妇xxxhd老熟女| 男女之间激情网午夜在线| 亚洲一级特黄特黄黄色录像片| av在线观看网址av| 中文字幕日韩精品日本| 插小穴高清无码中文字幕| 无码精品一区二区三区人| 视频一区二区在线免费播放| 欧美日韩高清午夜蜜桃大香蕉| 五色婷婷综合狠狠爱| 精品国产午夜视频一区二区| 男女啪啪啪啪啪的网站| 玖玖一区二区在线观看| 男女第一次视频在线观看| 福利午夜视频在线观看| 欧美黄色录像免费看的| 免费手机黄页网址大全| 91老熟女连续高潮对白| 亚洲 中文字幕在线 日韩| 青青青aaaa免费| 99热久久这里只有精品| 日本熟女50视频免费| 中文字幕乱码av资源| 人人爽亚洲av人人爽av| 一区二区三区激情在线| 和邻居少妇愉情中文字幕| 香蕉aⅴ一区二区三区| 丝袜亚洲另类欧美变态| 班长撕开乳罩揉我胸好爽| 把腿张开让我插进去视频| 99精品国自产在线人| 五十路av熟女松本翔子| 91成人在线观看免费视频| 国产精品午夜国产小视频| 9l人妻人人爽人人爽| 欧美一区二区三区在线资源| 2019av在线视频| 最新日韩av传媒在线| 日本一本午夜在线播放| 99的爱精品免费视频| 欧美老妇精品另类不卡片| 国产精品久久久久久久女人18| 少妇与子乱在线观看| 国产女人叫床高潮大片视频| 人妻自拍视频中国大陆| 亚洲成a人片777777| rct470中文字幕在线| 天天干天天操天天摸天天射| 91色秘乱一区二区三区| av大全在线播放免费| 快点插进来操我逼啊视频| 韩国一级特黄大片做受| 少妇人妻100系列| 在线观看av亚洲情色| 天天做天天干天天舔| 视频一区二区综合精品| 亚洲一区二区激情在线| 久久99久久99精品影院| 97超碰人人搞人人| 91试看福利一分钟| 国产aⅴ一线在线观看| 国产在线自在拍91国语自产精品| 天天射夜夜操综合网| 午夜精品福利一区二区三区p | 亚洲一级 片内射视正片| 亚洲精品午夜aaa久久| 一区二区三区欧美日韩高清播放| 韩国一级特黄大片做受| 精品亚洲中文字幕av| 在线免费观看视频一二区| 免费成人va在线观看| 婷婷久久一区二区字幕网址你懂得 | 亚洲国产成人av在线一区| 99精品久久久久久久91蜜桃| 自拍偷拍亚洲精品第2页| tube69日本少妇| 欧美国品一二三产区区别| 成年女人免费播放视频| 五十路老熟女码av| 黄色片一级美女黄色片| 欧美亚洲中文字幕一区二区三区| 99热久久这里只有精品8| 老司机免费福利视频网| 五月婷婷在线观看视频免费| 国产成人精品久久二区91| 无忧传媒在线观看视频| 100%美女蜜桃视频| 国产麻豆精品人妻av| 少妇高潮无套内谢麻豆| 欧美一区二区三区四区性视频| 亚洲精品麻豆免费在线观看| 黑人借宿ntr人妻的沦陷2| 欧洲精品第一页欧洲精品亚洲| 高清成人av一区三区| 男人的天堂一区二区在线观看| 天天日天天干天天舔天天射| 亚洲精品午夜久久久久| 日本少妇精品免费视频| 亚洲粉嫩av一区二区三区| 国产熟妇乱妇熟色T区| 东游记中文字幕版哪里可以看到| 中文字幕免费在线免费| 欧美色婷婷综合在线| 亚洲一区二区三区偷拍女厕91| 日韩欧美亚洲熟女人妻| 啪啪啪18禁一区二区三区| 粉嫩av蜜乳av蜜臀| 人妻少妇av在线观看| 久草电影免费在线观看| 亚洲变态另类色图天堂网| 欧美在线偷拍视频免费看| 精品一区二区三区三区色爱| 天天摸天天日天天操| 国产第一美女一区二区三区四区| 日本人妻少妇18—xx| 极品粉嫩小泬白浆20p主播| 午夜久久香蕉电影网| av成人在线观看一区| 特级无码毛片免费视频播放| 91人妻精品一区二区久久| 亚洲另类综合一区小说| 日韩欧美中文国产在线| av手机在线免费观看日韩av| 蜜桃视频入口久久久| 色狠狠av线不卡香蕉一区二区| 男人操女人的逼免费视频| 天堂中文字幕翔田av| 亚洲1区2区3区精华液| 日韩av大胆在线观看| 国产精品自拍在线视频| 99久久久无码国产精品性出奶水| 乱亲女秽乱长久久久| 日本午夜爽爽爽爽爽视频在线观看| 国产欧美精品不卡在线| 韩国三级aaaaa高清视频| 大香蕉福利在线观看| 欧美va不卡视频在线观看| 欧美日韩在线精品一区二区三| 日韩无码国产精品强奸乱伦| 91精品国产综合久久久蜜| 性生活第二下硬不起来| 青春草视频在线免费播放| 漂亮 人妻被中出中文| 老司机午夜精品视频资源| 亚洲国产在人线放午夜| 大屁股熟女一区二区三区| 色偷偷伊人大杳蕉综合网| 92福利视频午夜1000看| 亚洲综合色在线免费观看| 亚洲精品乱码久久久本| 40道精品招牌菜特色| 硬鸡巴动态操女人逼视频| av俺也去在线播放| 亚洲av成人网在线观看| 在线观看的a站 最新| 亚洲va国产va欧美精品88| 亚洲av午夜免费观看| 欲乱人妻少妇在线视频裸| 欧洲日韩亚洲一区二区三区| 日本熟妇一区二区x x| 午夜青青草原网在线观看| 曰本无码人妻丰满熟妇啪啪| 人妻在线精品录音叫床| 亚洲免费成人a v| 欧美在线精品一区二区三区视频| 久久免费看少妇高潮完整版| 午夜精品一区二区三区4| 黄页网视频在线免费观看 | 成人综合亚洲欧美一区| 日日夜夜狠狠干视频| 亚洲综合在线观看免费| 久久久精品999精品日本| 精品久久久久久久久久中文蒉| 亚洲最大黄 嗯色 操 啊| 日本性感美女视频网站| 免费男阳茎伸入女阳道视频 | 婷婷激情四射在线观看视频| 国产品国产三级国产普通话三级| aⅴ精产国品一二三产品| 中文字幕在线永久免费播放| 97少妇精品在线观看| 日本少妇高清视频xxxxx| 精品老妇女久久9g国产| 中文字幕视频一区二区在线观看| 成人国产影院在线观看| 欧美精品 日韩国产| 91中文字幕免费在线观看| 精品首页在线观看视频| 国产日韩一区二区在线看| 成人av电影免费版| 国产精品视频欧美一区二区| 国产亚洲天堂天天一区| 最新激情中文字幕视频| 亚洲av人人澡人人爽人人爱| 国产精品自偷自拍啪啪啪| 欧美一区二区三区四区性视频| 午夜成午夜成年片在线观看| 青青青国产片免费观看视频| av在线免费观看亚洲天堂| 2018最新中文字幕在线观看| 伊人开心婷婷国产av| 日本后入视频在线观看| 天天日天天摸天天爱| 狠狠地躁夜夜躁日日躁| 国产一区自拍黄视频免费观看 | 久久这里只有精彩视频免费| 国产中文字幕四区在线观看| 五十路熟女人妻一区二| 一区二区三区 自拍偷拍| 换爱交换乱高清大片| 直接能看的国产av| av大全在线播放免费| 成人福利视频免费在线| 精品人人人妻人人玩日产欧| 护士特殊服务久久久久久久| 精品成人啪啪18免费蜜臀| 日韩欧美亚洲熟女人妻| 在线观看国产免费麻豆| 天天日天天天天天天天天天天| 91色九色porny| 精品av国产一区二区三区四区| 热久久只有这里有精品| 中文字幕 码 在线视频| 免费看高清av的网站| 偷拍自拍国产在线视频| 超污视频在线观看污污污| 91‖亚洲‖国产熟女| www久久久久久久久久久| 亚洲精品欧美日韩在线播放| 视频啪啪啪免费观看| 天天干天天搞天天摸| 久久久极品久久蜜桃| 亚洲一区二区激情在线| 最新91精品视频在线| 日韩a级精品一区二区| 精品91高清在线观看| 摧残蹂躏av一二三区| 国产精彩福利精品视频| 少妇与子乱在线观看| aⅴ精产国品一二三产品| 国产欧美日韩在线观看不卡| 日韩中文字幕福利av| 激情啪啪啪啪一区二区三区| 2021天天色天天干| 大胸性感美女羞爽操逼毛片| 东游记中文字幕版哪里可以看到| 国产一区自拍黄视频免费观看| 青青操免费日综合视频观看| 91免费黄片可看视频| 欧美日韩一级黄片免费观看| 少妇与子乱在线观看| 最新国产精品拍在线观看| 97人人模人人爽人人喊| 果冻传媒av一区二区三区| lutube在线成人免费看| 日本黄色特一级视频| 在线免费观看欧美小视频| 做爰视频毛片下载蜜桃视频1| 性色av一区二区三区久久久| 亚洲一区制服丝袜美腿| 在线免费91激情四射 | 日辽宁老肥女在线观看视频| 老司机99精品视频在线观看| 日日摸夜夜添夜夜添毛片性色av| 中文字幕 亚洲av| 深田咏美亚洲一区二区| 粗大的内捧猛烈进出爽大牛汉子| 岛国青草视频在线观看| 搡老熟女一区二区在线观看| 最新91九色国产在线观看| 天天操天天干天天插| 精品一区二区亚洲欧美| 狠狠鲁狠狠操天天晚上干干| 在线观看日韩激情视频| 久久这里有免费精品| 偷拍自拍 中文字幕| 亚洲高清一区二区三区视频在线| av中文字幕国产在线观看| 97成人免费在线观看网站| 精品高跟鞋丝袜一区二区| 国产亚洲四十路五十路| 亚洲推理片免费看网站| 污污小视频91在线观看| 97人人妻人人澡人人爽人人精品| 日韩美女综合中文字幕pp| 大屁股肉感人妻中文字幕在线| 最近中文2019年在线看| 中文字幕一区二区亚洲一区| 传媒在线播放国产精品一区| 黑人3p华裔熟女普通话| 男人操女人逼逼视频网站| 亚洲色偷偷综合亚洲AV伊人| 成人av在线资源网站| 伊人成人在线综合网| 91极品新人『兔兔』精品新作| 岛国青草视频在线观看| 亚洲国产成人在线一区| 国产污污污污网站在线| 在线观看免费视频色97| 夜夜嗨av蜜臀av| 午夜精品在线视频一区| 国产精品国产三级国产午| 国产成人小视频在线观看无遮挡 | 日本免费视频午夜福利视频| 欧美中国日韩久久精品| 日本脱亚入欧是指什么| 欧美一区二区三区在线资源| 一色桃子人妻一区二区三区| 亚洲av成人免费网站| 亚洲av人人澡人人爽人人爱| 日本韩国在线观看一区二区| 国产精品一区二区久久久av| 果冻传媒av一区二区三区| av大全在线播放免费| 国产日韩欧美美利坚蜜臀懂色| 国产一区二区在线欧美| 欧洲精品第一页欧洲精品亚洲 | av中文字幕在线观看第三页| 亚洲2021av天堂| 国产91久久精品一区二区字幕| 黄色在线观看免费观看在线| 亚洲高清国产自产av| 婷婷激情四射在线观看视频| 国产黄色高清资源在线免费观看| 婷婷色中文亚洲网68| 99av国产精品欲麻豆| 性欧美日本大妈母与子| 五月天色婷婷在线观看视频免费| 人妻熟女中文字幕aⅴ在线| 日韩欧美亚洲熟女人妻| 开心 色 六月 婷婷| 最新欧美一二三视频 | 日日操夜夜撸天天干| 欧美一级片免费在线成人观看| 国产真实灌醉下药美女av福利| 不卡一区一区三区在线| 综合一区二区三区蜜臀| 亚洲精品ww久久久久久| 人人妻人人澡人人爽人人dvl| 人人爱人人妻人人澡39| 超碰97人人澡人人| 亚洲av可乐操首页| 好吊操视频这里只有精品| 亚洲视频在线观看高清| 91香蕉成人app下载| 蜜桃久久久久久久人妻| 福利午夜视频在线观看| 青青青青爽手机在线| 中文字幕在线观看国产片| 少妇与子乱在线观看| 中英文字幕av一区| 在线观看的黄色免费网站| 人人人妻人人澡人人| 亚洲精品国产在线电影| 亚洲美女自偷自拍11页| 99av国产精品欲麻豆| 99精品视频在线观看免费播放| 日本在线不卡免费视频| 人妻少妇亚洲精品中文字幕| 国产一线二线三线的区别在哪 | 黄色片一级美女黄色片| 欲乱人妻少妇在线视频裸| 在线免费观看日本伦理| 免费观看理论片完整版| 国产av自拍偷拍盛宴| aⅴ五十路av熟女中出| 中文字幕在线第一页成人| 欧美精品久久久久久影院| 亚洲国际青青操综合网站| 新婚人妻聚会被中出| 精品欧美一区二区vr在线观看| 欧美在线偷拍视频免费看| 亚洲欧美激情人妻偷拍| 欧美精品国产综合久久| 97精品综合久久在线| 北条麻妃av在线免费观看| 最近的中文字幕在线mv视频| 大鸡吧插入女阴道黄色片| 亚洲一区二区三区五区| 欧美日韩激情啪啪啪| 扒开腿挺进肉嫩小18禁视频| 91福利在线视频免费观看| 青青在线视频性感少妇和隔壁黑丝| 色天天天天射天天舔| 97年大学生大白天操逼| 99国内精品永久免费视频| 免费一级特黄特色大片在线观看 | 一区二区三区视频,福利一区二区| 国产av福利网址大全| 在线制服丝袜中文字幕| 免费无毒热热热热热热久| 欧美激情精品在线观看| 亚洲少妇人妻无码精品| 97国产在线av精品| 日本一区美女福利视频| 一区二区视频在线观看免费观看| 久久尻中国美女视频| 日韩美在线观看视频黄| 国产黑丝高跟鞋视频在线播放| 国产夫妻视频在线观看免费| 2020韩国午夜女主播在线| 日韩激情文学在线视频| 亚洲最大黄了色网站| 性色av一区二区三区久久久| 一区二区免费高清黄色视频| 日韩精品中文字幕福利| 亚洲福利精品福利精品福利| 亚洲伊人av天堂有码在线| 中文字幕无码一区二区免费| 极品丝袜一区二区三区| 欧美少妇性一区二区三区| 天天想要天天操天天干| 综合激情网激情五月五月婷婷| 真实国产乱子伦一区二区| 91快播视频在线观看| 日本韩国在线观看一区二区| 欧美亚洲少妇福利视频| 精品亚洲国产中文自在线| 懂色av之国产精品| 93人妻人人揉人人澡人人| 一区二区免费高清黄色视频| 亚洲 欧美 自拍 偷拍 在线| 日本最新一二三区不卡在线| 色综合天天综合网国产成人| 中文字幕第1页av一天堂网| 国产亚洲成人免费在线观看| 40道精品招牌菜特色| 青青草人人妻人人妻| 中文字幕网站你懂的| 少妇人妻100系列| av在线资源中文字幕| 色婷婷六月亚洲综合香蕉| 国产高清精品极品美女| 99精品一区二区三区的区| 青青青青在线视频免费观看| 日本人妻少妇18—xx| 中文字幕成人日韩欧美| 国产综合视频在线看片| 午夜精品一区二区三区福利视频| 玖玖一区二区在线观看| 中文字幕在线一区精品| 成人精品视频99第一页| 亚洲推理片免费看网站| 国产麻豆剧果冻传媒app| av资源中文字幕在线观看| 午夜成午夜成年片在线观看 | 亚洲另类在线免费观看| 国产91嫩草久久成人在线视频| 国产三级片久久久久久久| 国产日韩av一区二区在线| 在线观看一区二区三级| 人妻激情图片视频小说| 国产女人被做到高潮免费视频| 亚洲人妻视频在线网| 色秀欧美视频第一页| 激情五月婷婷免费视频| 亚洲1区2区3区精华液| 欧美 亚洲 另类综合| 久久这里只有精品热视频| 特大黑人巨大xxxx| 欧美成人小视频在线免费看| 夜夜嗨av蜜臀av| 日本女人一级免费片| 97超碰最新免费在线观看| 中文乱理伦片在线观看| 亚洲天堂有码中文字幕视频| 蜜臀av久久久久蜜臀av麻豆| 亚洲精品一区二区三区老狼| 自拍偷拍日韩欧美一区二区| 日本一本午夜在线播放| 大陆胖女人与丈夫操b国语高清| 精品人妻伦一二三区久| 91大神福利视频网| 中文字幕一区二区三区人妻大片| 在线观看免费av网址大全| 日本脱亚入欧是指什么| 午夜精品久久久久麻豆影视| 一区二区三区av高清免费| 一区国内二区日韩三区欧美| 摧残蹂躏av一二三区| 一级黄色av在线观看| 岛国黄色大片在线观看| 亚洲福利精品福利精品福利| 淫秽激情视频免费观看| 最新中文字幕乱码在线| 9久在线视频只有精品| 自拍偷拍亚洲精品第2页| 欧美80老妇人性视频| 不卡一区一区三区在线| 亚洲一区二区久久久人妻| 天天日天天干天天搡| 日本人妻少妇18—xx| 欧美综合婷婷欧美综合| 91‖亚洲‖国产熟女| 老师让我插进去69AV| 大陆胖女人与丈夫操b国语高清| 日韩写真福利视频在线观看| 精品国产乱码一区二区三区乱| 日本阿v视频在线免费观看| 国产亚洲成人免费在线观看| 亚洲激情唯美亚洲激情图片| 亚洲国产第一页在线观看| 91www一区二区三区| 中文字幕—97超碰网| 午夜激情高清在线观看| 91大神福利视频网| 一级黄片久久久久久久久| 日韩北条麻妃一区在线| 爱有来生高清在线中文字幕| 亚洲推理片免费看网站| 在线观看国产网站资源| 57pao国产一区二区| 天天日天天爽天天爽| 国产精品福利小视频a| caoporm超碰国产| 国产一区成人在线观看视频| 欧美成人综合视频一区二区| av在线shipin| 含骚鸡巴玩逼逼视频| 精产国品久久一二三产区区别| 93精品视频在线观看| 国产精品一区二区三区蜜臀av | 成人av久久精品一区二区| 中文亚洲欧美日韩无线码| 91久久综合男人天堂| 在线视频国产欧美日韩| 亚洲熟妇无码一区二区三区| 99久久99一区二区三区| 成年人黄视频在线观看| 欧美精品国产综合久久| 一区二区三区 自拍偷拍| 国产精品伦理片一区二区| 又黄又刺激的午夜小视频| 大香蕉大香蕉在线有码 av| 色哟哟在线网站入口| 欧美日韩不卡一区不区二区| 亚洲伊人久久精品影院一美女洗澡| 日本av熟女在线视频| 欲满人妻中文字幕在线| 久久久极品久久蜜桃| 久久久久久久久久一区二区三区 | 久久这里只有精彩视频免费| 免费观看成年人视频在线观看| 精品亚洲中文字幕av| 亚洲国产美女一区二区三区软件| 97国产福利小视频合集| 最近中文2019年在线看| 免费在线观看视频啪啪| 精品黑人一区二区三区久久国产 | 国产日韩一区二区在线看| mm131美女午夜爽爽爽| 91福利视频免费在线观看| 久久99久久99精品影院| 夜夜嗨av蜜臀av| 五月婷婷在线观看视频免费| 丝袜亚洲另类欧美变态| 一区二区免费高清黄色视频| 亚洲 清纯 国产com| 亚洲国产精品久久久久久6| av天堂中文免费在线| 日本黄色特一级视频| 亚洲av人人澡人人爽人人爱| 视频久久久久久久人妻| 美女张开两腿让男人桶av| japanese五十路熟女熟妇| 92福利视频午夜1000看| 日本在线不卡免费视频| 热久久只有这里有精品| 夜鲁夜鲁狠鲁天天在线| 天天日天天干天天爱| 亚洲va国产va欧美精品88| 人妻av无码专区久久绿巨人| 99亚洲美女一区二区三区| 美女 午夜 在线视频| 五十路息与子猛烈交尾视频 | 91精品免费久久久久久| 粉嫩av懂色av蜜臀av| 一区二区三区另类在线| 高清一区二区欧美系列| eeuss鲁片一区二区三区| 国产精品国产三级麻豆| 伊人成人在线综合网| 自拍 日韩 欧美激情| 91精品国产观看免费| 一区二区三区欧美日韩高清播放| 亚洲午夜在线视频福利| 97人人妻人人澡人人爽人人精品| 日韩欧美亚洲熟女人妻| 中国黄色av一级片| 性感美女福利视频网站| 色伦色伦777国产精品| 自拍偷拍一区二区三区图片| 在线视频精品你懂的| 欧美精产国品一二三产品区别大吗| 亚洲福利精品视频在线免费观看| 国产亚洲精品视频合集| 亚洲精品国产综合久久久久久久久 | 欧美3p在线观看一区二区三区| 婷婷色中文亚洲网68| 岛国av高清在线成人在线| 国产视频网站国产视频| 国产精品中文av在线播放| 91社福利《在线观看| 亚洲一级美女啪啪啪| 日本熟妇丰满厨房55| 国产日韩欧美美利坚蜜臀懂色| 9色在线视频免费观看| 91精品视频在线观看免费| 又黄又刺激的午夜小视频| 亚洲人妻视频在线网| 青青草亚洲国产精品视频| 亚洲精品午夜aaa久久| 国产又粗又硬又猛的毛片视频| 日韩欧美高清免费在线| 免费手机黄页网址大全| 精品成人午夜免费看| 国产乱子伦精品视频潮优女| 欧美天堂av无线av欧美| 老有所依在线观看完整版 | 伊人成人在线综合网| 亚洲免费av在线视频| 狠狠操狠狠操免费视频| 亚洲综合一区二区精品久久| 欧美偷拍亚洲一区二区| 日韩黄色片在线观看网站| 国产在线观看黄色视频| 岛国青草视频在线观看| 午夜精品亚洲精品五月色| 人人妻人人人操人人人爽| 日本免费午夜视频网站| 中文字幕一区二区三区人妻大片| 777奇米久久精品一区| 大香蕉福利在线观看| 亚洲欧美日韩视频免费观看| 日日操夜夜撸天天干| 蜜桃久久久久久久人妻| 75国产综合在线视频| 亚洲精品午夜久久久久| 免费一级黄色av网站| 久草电影免费在线观看| 人人妻人人爽人人澡人人精品| 水蜜桃一区二区三区在线观看视频| 亚洲av午夜免费观看| 自拍 日韩 欧美激情| 亚洲熟妇x久久av久久| 午夜在线精品偷拍一区二| 日韩不卡中文在线视频网站| 欧美成人精品欧美一级黄色| 91一区精品在线观看| 国产品国产三级国产普通话三级| 99热久久这里只有精品8| 国产视频网站国产视频| 亚洲综合另类精品小说| 欧美国产亚洲中英文字幕| 人妻熟女中文字幕aⅴ在线| 中文字幕之无码色多多| 国产在线免费观看成人| ka0ri在线视频| 狍和女人的王色毛片| 日本熟妇丰满厨房55| 男人天堂色男人av| 免费啪啪啪在线观看视频| 青青色国产视频在线| 日本又色又爽又黄又粗| 日韩精品中文字幕福利| 午夜dv内射一区区| 视频一区二区在线免费播放| 淫秽激情视频免费观看| 大陆精品一区二区三区久久| 青青草视频手机免费在线观看| 好吊视频—区二区三区| 亚洲欧美激情国产综合久久久| 中文字幕一区二区三区人妻大片| av男人天堂狠狠干| 国产精品污污污久久| 国产亚州色婷婷久久99精品| 美女张开腿让男生操在线看| 日韩人妻丝袜中文字幕| 国产午夜亚洲精品麻豆| 亚洲老熟妇日本老妇| 在线播放一区二区三区Av无码| 任你操任你干精品在线视频 | 久久机热/这里只有| 久久久久久久精品成人热| 欧美黑人与人妻精品| 可以免费看的www视频你懂的| 久草福利电影在线观看| 91国内精品自线在拍白富美| 国产极品精品免费视频| 国产成人精品久久二区91| 日本女大学生的黄色小视频| 男人的天堂在线黄色| 亚洲欧美久久久久久久久| 中文字幕 人妻精品| 美女少妇亚洲精选av| 久久人人做人人妻人人玩精品vr| 中文字幕高清在线免费播放| 视频一区二区三区高清在线| 丝袜肉丝一区二区三区四区在线 | 久久久久五月天丁香社区| 日本人妻欲求不满中文字幕| 久久久精品999精品日本| 中文字幕av一区在线观看| 男人在床上插女人视频| 人妻少妇亚洲精品中文字幕| 自拍偷区二区三区麻豆| 亚洲精品高清自拍av| 亚洲人成精品久久久久久久| 99国产精品窥熟女精品| 天天日天天干天天要| 中文字幕一区二区自拍| 91天堂精品一区二区| 伊人情人综合成人久久网小说 | 天码人妻一区二区三区在线看| 国产精品黄页网站视频| 熟女视频一区,二区,三区| 亚洲综合在线观看免费| 精品人妻伦一二三区久| 亚洲人妻国产精品综合| 女警官打开双腿沦为性奴| 美洲精品一二三产区区别| 亚洲自拍偷拍综合色| 婷婷久久久综合中文字幕| 日韩精品一区二区三区在线播放| 超碰在线观看免费在线观看| 黑人3p华裔熟女普通话| 精品国产午夜视频一区二区| 国内自拍第一页在线观看| 人妻自拍视频中国大陆| 亚洲免费国产在线日韩| 色伦色伦777国产精品| 亚洲国产欧美一区二区三区久久| 亚洲av琪琪男人的天堂| 久久久久久久久久一区二区三区| 女同久久精品秋霞网| 少妇露脸深喉口爆吞精| 国产高清精品极品美女| 国产 在线 免费 精品| 88成人免费av网站| 亚洲午夜电影在线观看| 狠狠操操操操操操操操操| 国产精品国色综合久久 | 国产大鸡巴大鸡巴操小骚逼小骚逼| 天堂中文字幕翔田av| 精品一区二区亚洲欧美| 成人乱码一区二区三区av| 青青青青青手机视频| 五月天中文字幕内射| 经典av尤物一区二区| 一级黄色片夫妻性生活| 不卡精品视频在线观看| 一区二区三区四区中文| 亚洲欧美成人综合在线观看| 在线视频免费观看网| 亚洲福利精品视频在线免费观看| 欧美视频不卡一区四区| 中文字幕日韩精品日本| 日本高清在线不卡一区二区| 夜夜嗨av一区二区三区中文字幕| 99av国产精品欲麻豆| 日本一二三区不卡无| 人妻少妇中文有码精品| 天天射夜夜操狠狠干| 免费看美女脱光衣服的视频| 51国产成人精品视频| 99热久久这里只有精品8| 九九视频在线精品播放| 少妇高潮一区二区三区| 免费男阳茎伸入女阳道视频| 午夜精品一区二区三区4| 9久在线视频只有精品| 超碰在线中文字幕一区二区| 日韩亚洲高清在线观看| 91综合久久亚洲综合| 在线观看亚洲人成免费网址| 水蜜桃一区二区三区在线观看视频| 欧美视频中文一区二区三区| 99亚洲美女一区二区三区| 1区2区3区不卡视频| 人人妻人人澡人人爽人人dvl| 日本一区二区三区免费小视频| 青青青青青手机视频| 99精品免费久久久久久久久a| av一本二本在线观看| 亚洲精品亚洲人成在线导航| 亚洲午夜电影之麻豆| 亚洲一区二区三区精品乱码| 熟女人妻一区二区精品视频| 超碰97人人澡人人| 中文字幕在线观看极品视频| 亚洲av自拍天堂网| eeuss鲁片一区二区三区| 国产乱子伦精品视频潮优女| 免费岛国喷水视频在线观看| 夜色撩人久久7777| 啊啊啊想要被插进去视频| 自拍偷区二区三区麻豆| 亚洲高清自偷揄拍自拍| 日本av高清免费网站| 久久三久久三久久三久久| 超碰97人人澡人人| 韩国爱爱视频中文字幕| 2012中文字幕在线高清| 亚洲特黄aaaa片| 午夜美女少妇福利视频| sw137 中文字幕 在线| 亚洲精品久久综合久| 日韩精品中文字幕在线| 中文字幕,亚洲人妻| 亚洲中文字幕乱码区| 久久久久久性虐视频| 在线免费观看国产精品黄色| 扒开腿挺进肉嫩小18禁视频| 日本一本午夜在线播放| 亚洲熟女久久久36d| 一色桃子人妻一区二区三区| 人妻凌辱欧美丰满熟妇| 成人久久精品一区二区三区| 黄页网视频在线免费观看| 欧洲日韩亚洲一区二区三区| 日韩三级黄色片网站| 五十路熟女人妻一区二| 91中文字幕最新合集| 成年午夜影片国产片| 一区二区三区欧美日韩高清播放| 超鹏97历史在线观看| 国产黄色a级三级三级三级 | 精品国产午夜视频一区二区| 骚逼被大屌狂草视频免费看| 日本一区美女福利视频| 特大黑人巨大xxxx| 红杏久久av人妻一区| 亚洲激情偷拍一区二区| av成人在线观看一区| 日本少妇的秘密免费视频| 在线观看国产免费麻豆| 亚洲国产香蕉视频在线播放| 成人福利视频免费在线| 免费啪啪啪在线观看视频| av无限看熟女人妻另类av| 亚洲av第国产精品| 国产精品欧美日韩区二区| 2020韩国午夜女主播在线| 很黄很污很色的午夜网站在线观看| 欧美视频不卡一区四区| 一区二区视频在线观看免费观看 | 日韩三级黄色片网站| 亚洲1卡2卡三卡4卡在线观看| 亚洲欧美激情人妻偷拍| 亚洲国产精品久久久久蜜桃| 啪啪啪操人视频在线播放| 日本韩国在线观看一区二区| 国产亚洲欧美另类在线观看| 免费黄页网站4188| 天天日天天操天天摸天天舔 | 成人乱码一区二区三区av| 国产av欧美精品高潮网站| jiuse91九色视频| 97精品成人一区二区三区 | 边摸边做超爽毛片18禁色戒 | 国产av自拍偷拍盛宴| 熟女国产一区亚洲中文字幕| 伊人开心婷婷国产av| 熟女91pooyn熟女| 91av中文视频在线| 999九九久久久精品| 久久精品国产23696| 青青社区2国产视频| 97资源人妻免费在线视频| 国产日韩精品免费在线| 成年人免费看在线视频| 成年午夜影片国产片| 一区二区免费高清黄色视频| 五月精品丁香久久久久福利社| 亚洲码av无色中文| 免费国产性生活视频| 中文字幕av熟女人妻| 欧美日韩亚洲国产无线码| 欧美精品一区二区三区xxxx| 国产亚洲成人免费在线观看| 亚洲成a人片777777| 日本少妇在线视频大香蕉在线观看| 精品国产在线手机在线| 成人18禁网站在线播放| 偷拍美女一区二区三区| 国产久久久精品毛片| 大鸡巴插入美女黑黑的阴毛| 色综合久久五月色婷婷综合| 精品人人人妻人人玩日产欧| 综合色区亚洲熟妇shxstz| 国产精品3p和黑人大战| 亚洲欧美色一区二区| 国产91嫩草久久成人在线视频| 精品高跟鞋丝袜一区二区| 自拍偷拍亚洲精品第2页| 亚洲国产40页第21页| 国产一区二区三免费视频| 在线免费观看靠比视频的网站| 一区二区三区久久久91| 五月婷婷在线观看视频免费 | 中文字幕日韩无敌亚洲精品| 三级等保密码要求条款| 4个黑人操素人视频网站精品91| 美女吃鸡巴操逼高潮视频| 乱亲女秽乱长久久久| 夜女神免费福利视频| 亚洲人妻国产精品综合| 2020韩国午夜女主播在线| 一区二区视频在线观看视频在线| 美洲精品一二三产区区别| 精品欧美一区二区vr在线观看 | 激情啪啪啪啪一区二区三区 | 国产免费高清视频视频| 亚洲区欧美区另类最新章节| 日曰摸日日碰夜夜爽歪歪| 中文字幕一区二区人妻电影冢本| 久久精品久久精品亚洲人| 精品久久久久久久久久久a√国产| 55夜色66夜色国产精品站| 一级黄片大鸡巴插入美女 | 77久久久久国产精产品| 国产精品免费不卡av| 护士特殊服务久久久久久久| 成人资源在线观看免费官网| 中文字幕人妻三级在线观看| 日本免费午夜视频网站| 成人性爱在线看四区| 91精品国产麻豆国产| 国产黑丝高跟鞋视频在线播放 | 中文字幕AV在线免费看 | 亚洲国产40页第21页| 日日爽天天干夜夜操| 亚洲欧美一区二区三区电影| 国产高清在线在线视频| 大鸡巴操b视频在线| 女同性ⅹxx女同hd| 日韩欧美国产精品91| 激情啪啪啪啪一区二区三区| 亚洲精品国产久久久久久| 在线观看免费av网址大全| 欧美日韩一区二区电影在线观看| 婷婷五月亚洲综合在线| 亚洲另类伦春色综合小| 国产亚洲欧美视频网站| 午夜影院在线观看视频羞羞羞| 自拍偷拍亚洲精品第2页| 欧美少妇性一区二区三区| 一区二区久久成人网| 蜜臀成人av在线播放| 中文字幕人妻一区二区视频| 精品一区二区三区三区88| 五月精品丁香久久久久福利社| 中文字幕在线免费第一页| 五色婷婷综合狠狠爱| aiss午夜免费视频| 欧美日本在线观看一区二区| 亚洲伊人色一综合网| 无码中文字幕波多野不卡| 91啪国自产中文字幕在线| 国产日本欧美亚洲精品视| 欧美国品一二三产区区别 | 亚洲av成人网在线观看| 中文字幕第一页国产在线| 亚洲午夜在线视频福利| 爆乳骚货内射骚货内射在线| 国产精品久久久久久久精品视频 | 欧美日韩国产一区二区三区三州| 天天干天天操天天扣| 无码中文字幕波多野不卡| www日韩毛片av| 天天爽夜夜爽人人爽QC| 18禁网站一区二区三区四区| 日韩欧美中文国产在线| 宅男噜噜噜666国产| 欧美aa一级一区三区四区| 亚洲一区二区激情在线| 视频久久久久久久人妻| 黑人巨大的吊bdsm| 丰满少妇人妻xxxxx| 热思思国产99re| 日本精品一区二区三区在线视频。| 亚洲偷自拍高清视频| 绝色少妇高潮3在线观看| 五月婷婷在线观看视频免费| 天天操天天干天天艹| 夜夜骑夜夜操夜夜奸| 夜色福利视频在线观看| 亚洲人妻国产精品综合| 在线免费91激情四射| 国产精品亚洲а∨天堂免| 国产一级精品综合av| 激情国产小视频在线| 午夜精品福利一区二区三区p| 亚洲欧美久久久久久久久| 成年人免费看在线视频| 欧美日本aⅴ免费视频| 91香蕉成人app下载| 在线网站你懂得老司机| 亚洲高清一区二区三区视频在线| 噜噜色噜噜噜久色超碰| 黑人大几巴狂插日本少妇| 91av精品视频在线| 中文字幕免费福利视频6| 国产一区自拍黄视频免费观看| 欧美日韩熟女一区二区三区| 最近中文字幕国产在线| 97国产在线观看高清| 亚洲中文精品字幕在线观看 | 揄拍成人国产精品免费看视频| 人妻熟女在线一区二区| 日本丰满熟妇BBXBBXHD| 91精品激情五月婷婷在线| 中国无遮挡白丝袜二区精品| 999热精品视频在线| 亚洲精品国品乱码久久久久| 18禁精品网站久久| 大香蕉玖玖一区2区| 护士特殊服务久久久久久久| 硬鸡巴动态操女人逼视频| 亚洲最大黄了色网站| avjpm亚洲伊人久久| 在线观看免费岛国av| 日本三极片视频网站观看| 一区二区三区四区五区性感视频| 经典国语激情内射视频| av天堂中文免费在线| 99热碰碰热精品a中文| 最近中文字幕国产在线| 亚洲高清视频在线不卡| mm131美女午夜爽爽爽| 丝袜国产专区在线观看| 爆乳骚货内射骚货内射在线 | 这里只有精品双飞在线播放| 免费手机黄页网址大全| 亚洲女人的天堂av| 中文字幕在线一区精品| 青青青视频手机在线观看| 欧美香蕉人妻精品一区二区| 人人在线视频一区二区| 91精品国产观看免费| 日日日日日日日日夜夜夜夜夜夜| 啊啊好慢点插舔我逼啊啊啊视频| 中文字幕一区二区亚洲一区| 精品人人人妻人人玩日产欧| 中文字幕人妻熟女在线电影| 国产精品视频一区在线播放| 在线国产中文字幕视频| 日韩av免费观看一区| 成年午夜免费无码区| 91国内视频在线观看| 日本一二三中文字幕| 亚洲欧美激情国产综合久久久| 国产成人小视频在线观看无遮挡 | 国产一级麻豆精品免费| 在线不卡日韩视频播放| 国产V亚洲V天堂无码欠欠| 瑟瑟视频在线观看免费视频| 欧美一级色视频美日韩| 视频一区二区在线免费播放| 2021最新热播中文字幕| 日本成人不卡一区二区| 93人妻人人揉人人澡人人| 欧美黑人性猛交xxxxⅹooo| 男生舔女生逼逼视频| 国产美女精品福利在线| 亚洲国产欧美一区二区丝袜黑人| 桃色视频在线观看一区二区| 国产性色生活片毛片春晓精品| 亚洲一区二区三区在线高清| weyvv5国产成人精品的视频| 我想看操逼黄色大片| 99热国产精品666| 中文字日产幕乱六区蜜桃| 人妻av无码专区久久绿巨人| 人妻久久无码中文成人| 在线观看免费岛国av| 免费无码人妻日韩精品一区二区 | 国产福利小视频大全| 特一级特级黄色网片| 美日韩在线视频免费看| 天天干天天日天天干天天操| 午夜精品在线视频一区| 蜜桃精品久久久一区二区| 中出中文字幕在线观看| 黄页网视频在线免费观看| 亚洲精品亚洲人成在线导航| 成人伊人精品色xxxx视频| 2022中文字幕在线| 日韩黄色片在线观看网站| 日本丰满熟妇大屁股久久| 2022国产精品视频| 亚洲av色图18p| 人妻丝袜av在线播放网址| 午夜精彩视频免费一区| 人妻爱爱 中文字幕| 欧美专区第八页一区在线播放| 欧美激情电影免费在线| 黄色片一级美女黄色片| 中文字幕乱码人妻电影| 国产成人精品福利短视频| 国产亚洲天堂天天一区| 韩国三级aaaaa高清视频| 天堂中文字幕翔田av| japanese五十路熟女熟妇| 女警官打开双腿沦为性奴| 亚洲精品在线资源站| 亚洲精品乱码久久久本| 性色蜜臀av一区二区三区| 亚洲免费在线视频网站| 国产视频一区二区午夜| 亚洲欧美另类自拍偷拍色图| 男人和女人激情视频| 亚洲一区二区激情在线| 一区二区免费高清黄色视频| 亚洲一区二区人妻av| 夜女神免费福利视频| 91she九色精品国产| 99人妻视频免费在线| 插逼视频双插洞国产操逼插洞| 经典亚洲伊人第一页| 78色精品一区二区三区| 日日夜夜大香蕉伊人| 91小伙伴中女熟女高潮| 欧美日韩高清午夜蜜桃大香蕉| 91欧美在线免费观看| 天天操天天污天天射| 久久精品国产999| 亚洲男人的天堂a在线| 宅男噜噜噜666国产| 熟女妇女老妇一二三区| 国产V亚洲V天堂无码欠欠| 一二三中文乱码亚洲乱码one| 激情伦理欧美日韩中文字幕| 粗大的内捧猛烈进出爽大牛汉子| 天堂av狠狠操蜜桃| 欧美久久久久久三级网| 社区自拍揄拍尻屁你懂的| 97国产福利小视频合集| 91久久综合男人天堂| 人人爽亚洲av人人爽av| 国产福利在线视频一区| 国产日韩一区二区在线看| 亚洲视频在线视频看视频在线| jul—619中文字幕在线| 97国产在线av精品| 在线亚洲天堂色播av电影| 中文字幕亚洲久久久| 大陆精品一区二区三区久久| 色呦呦视频在线观看视频| 在线观看成人国产电影| 成人av天堂丝袜在线观看| 久久机热/这里只有| 青青草在观免费国产精品| 欧美久久一区二区伊人| 亚洲成人av一区久久| 亚洲一区av中文字幕在线观看| 天堂av在线官网中文| av中文字幕网址在线| 51精品视频免费在线观看| 美女在线观看日本亚洲一区| 日韩二区视频一线天婷婷五| 家庭女教师中文字幕在线播放| 夜女神免费福利视频| 欧美成人黄片一区二区三区 | 亚洲国产成人在线一区| 伊人网中文字幕在线视频| 午夜美女福利小视频| 夜夜躁狠狠躁日日躁麻豆内射 | 午夜精品九一唐人麻豆嫩草成人| 在线观看黄色成年人网站| 91综合久久亚洲综合| 久久精品亚洲国产av香蕉| 日韩av有码一区二区三区4| 色婷婷六月亚洲综合香蕉| 日韩美av高清在线| 国产精品久久久久久久久福交| 天天做天天干天天操天天射| 98视频精品在线观看| 最近的中文字幕在线mv视频| 日本在线一区二区不卡视频| 天天干天天操天天插天天日| 最新91九色国产在线观看| 大香蕉玖玖一区2区| rct470中文字幕在线| 骚货自慰被发现爆操| 亚洲欧美激情中文字幕| 国产精品污污污久久| 青青草精品在线视频观看| 绝顶痉挛大潮喷高潮无码| 97成人免费在线观看网站| 亚洲av日韩av第一区二区三区| 久久久精品国产亚洲AV一| 超级av免费观看一区二区三区| 黄色成人在线中文字幕| 快插进小逼里大鸡吧视频| 91精品国产91久久自产久强| 亚洲欧美综合在线探花| 青青草亚洲国产精品视频| 99久久激情婷婷综合五月天| 国内精品在线播放第一页| 亚洲成人情色电影在线观看| 热99re69精品8在线播放| 美女日逼视频免费观看| 制服丝袜在线人妻中文字幕| 九九视频在线精品播放| 521精品视频在线观看| 在线免费观看日本伦理| 人妻熟女中文字幕aⅴ在线| 1000小视频在线| av网站色偷偷婷婷网男人的天堂| 18禁美女羞羞免费网站| 五十路av熟女松本翔子| 亚洲国产欧美一区二区三区…| 人妻久久无码中文成人| 亚洲国产免费av一区二区三区| 国产精品系列在线观看一区二区 | 93视频一区二区三区| 一区二区三区四区中文| 韩国男女黄色在线观看| 国产精品国产三级麻豆| 国产成人一区二区三区电影网站 | 人人超碰国字幕观看97| 又黄又刺激的午夜小视频| 欧美精品中文字幕久久二区| 亚洲人人妻一区二区三区| 91精品国产91久久自产久强| 天天做天天干天天操天天射| 99久久99一区二区三区| 午夜国产免费福利av| 日本裸体熟妇区二区欧美| 青青色国产视频在线| 99热99re在线播放| 国产综合高清在线观看| 日本熟女精品一区二区三区| 天天操天天干天天日狠狠插| av日韩在线免费播放| 亚洲欧美福利在线观看| 女警官打开双腿沦为性奴| 日本www中文字幕| 欧美3p在线观看一区二区三区| 精品一区二区三区午夜| 黄色片黄色片wyaa| 最新欧美一二三视频 | 91久久人澡人人添人人爽乱| 亚洲精品一区二区三区老狼| 99热色原网这里只有精品| 国产一级麻豆精品免费| 日韩av有码一区二区三区4| 色偷偷伊人大杳蕉综合网| 免费啪啪啪在线观看视频| 视频 一区二区在线观看| 狠狠的往里顶撞h百合| 天天干天天插天天谢| 日日日日日日日日夜夜夜夜夜夜| 18禁无翼鸟成人在线| 蜜桃视频在线欧美一区| 岛国毛片视频免费在线观看| 婷婷综合亚洲爱久久| 天堂资源网av中文字幕| 亚洲精品三级av在线免费观看| 亚洲熟女久久久36d| 一区二区三区视频,福利一区二区| 一区二区三区视频,福利一区二区 丰满的子国产在线观看 | 亚洲公开视频在线观看| 亚洲精品麻豆免费在线观看| 98视频精品在线观看| 国产精品成人xxxx| 亚洲国产在人线放午夜| 成年人黄视频在线观看| 制服丝袜在线人妻中文字幕| 免费成人va在线观看| 天堂v男人视频在线观看| 亚洲精品 日韩电影| 亚洲av自拍偷拍综合| 夜色撩人久久7777| 大尺度激情四射网站| 亚洲成av人无码不卡影片一| 国产97视频在线精品| 国产女孩喷水在线观看| 免费黄色成人午夜在线网站| 无码中文字幕波多野不卡| 人妻av无码专区久久绿巨人 | 亚洲精品 日韩电影| 北条麻妃肉色丝袜视频| 91国语爽死我了不卡| 1区2区3区不卡视频| 97成人免费在线观看网站| 制丝袜业一区二区三区| 色伦色伦777国产精品| 2021天天色天天干| 天天干天天插天天谢| 无套猛戳丰满少妇人妻| 97精品综合久久在线| 19一区二区三区在线播放| 国产精品久久久久国产三级试频| 色天天天天射天天舔| 天天日天天操天天摸天天舔| 青青青青青青青青青青草青青| 3337p日本欧洲大胆色噜噜| 狠狠鲁狠狠操天天晚上干干| 中文字幕 人妻精品| 97精品成人一区二区三区 | 直接能看的国产av| 夜鲁夜鲁狠鲁天天在线| 美洲精品一二三产区区别| 亚洲第一伊人天堂网| 免费看国产又粗又猛又爽又黄视频| 小穴多水久久精品免费看| 大香蕉大香蕉在线有码 av| av中文字幕国产在线观看| 色综合久久无码中文字幕波多| 中文字幕在线一区精品| 粉嫩av蜜乳av蜜臀| 精品亚洲中文字幕av | 夏目彩春在线中文字幕| 操操网操操伊剧情片中文字幕网| 青草亚洲视频在线观看| 久久精品国产999| 啊啊啊视频试看人妻| 亚洲激情,偷拍视频| rct470中文字幕在线| 久久久久久久99精品| 国产亚洲欧美视频网站| 91自产国产精品视频| 激情五月婷婷免费视频| 又黄又刺激的午夜小视频| 午夜精品九一唐人麻豆嫩草成人| 免费大片在线观看视频网站| 亚洲人妻30pwc| 男人天堂av天天操| 蜜桃色婷婷久久久福利在线| 亚洲成a人片777777| 日日夜夜狠狠干视频| 老司机免费视频网站在线看| 国产欧美精品一区二区高清| 亚洲av无女神免非久久| 在线亚洲天堂色播av电影| 又粗又硬又猛又爽又黄的| 国产九色91在线视频| 在线观看视频污一区| 亚洲一区久久免费视频| 亚洲最大免费在线观看| 日韩人妻xxxxx| 亚洲免费福利一区二区三区| 色婷婷综合激情五月免费观看| 小泽玛利亚视频在线观看| 欧美80老妇人性视频| 成人18禁网站在线播放| 亚洲美女自偷自拍11页| 欧美日韩激情啪啪啪| 97资源人妻免费在线视频| av在线观看网址av| 国产精品自拍偷拍a| 晚上一个人看操B片| 亚洲码av无色中文| 91综合久久亚洲综合| 国产成人精品亚洲男人的天堂| 国产精品中文av在线播放| 成人高清在线观看视频| 不戴胸罩引我诱的隔壁的人妻| 亚洲老熟妇日本老妇| 2020国产在线不卡视频| 成人影片高清在线观看 | 免费在线黄色观看网站| 日韩三级电影华丽的外出| 青青草人人妻人人妻| 免费看国产av网站| 免费在线观看污污视频网站| 男人和女人激情视频| 蜜桃视频17c在线一区二区| 91色秘乱一区二区三区| 日日夜夜大香蕉伊人| 欧美老妇精品另类不卡片| 韩国三级aaaaa高清视频| av在线观看网址av| 天天干天天操天天插天天日| 2021久久免费视频| 国产精品久久9999| 人妻少妇亚洲精品中文字幕| 欧洲黄页网免费观看| 欧美色婷婷综合在线| 国产综合精品久久久久蜜臀| 日韩欧美高清免费在线| 午夜精品一区二区三区更新| 综合精品久久久久97| av中文字幕网址在线| 亚洲综合一区成人在线| 男人的天堂一区二区在线观看| 天天操天天爽天天干| 成人性爱在线看四区| 北条麻妃高跟丝袜啪啪| 免费高清自慰一区二区三区网站| 亚洲精品 日韩电影| 在线免费观看欧美小视频| 久久亚洲天堂中文对白| 欧洲亚洲欧美日韩综合| 亚洲成人黄色一区二区三区| 高潮喷水在线视频观看| 91精品国产黑色丝袜| 香港三日本三韩国三欧美三级| 爱有来生高清在线中文字幕| 狠狠躁狠狠爱网站视频| 亚洲午夜高清在线观看| 国产真实乱子伦a视频| 久久www免费人成一看片| 九色精品视频在线播放| 日本人妻欲求不满中文字幕| 国产V亚洲V天堂无码欠欠| 免费大片在线观看视频网站| 精品黑人巨大在线一区| 一区二区视频在线观看视频在线| 成年午夜影片国产片| 亚洲精品国产在线电影| 青青青青在线视频免费观看| 国产男女视频在线播放| 100%美女蜜桃视频| 都市家庭人妻激情自拍视频| 日本一区二区三区免费小视频| 亚洲成人午夜电影在线观看| 香蕉aⅴ一区二区三区| 中文字幕在线观看极品视频| 精彩视频99免费在线| 亚洲精品中文字幕下载| 天天操天天弄天天射| 亚洲va天堂va国产va久| 欧美精产国品一二三产品区别大吗| 青青热久免费精品视频在线观看 | 国产片免费观看在线观看| 国产性色生活片毛片春晓精品 | 欧洲黄页网免费观看| 国产中文精品在线观看| 成年人啪啪视频在线观看| 午夜在线一区二区免费| 亚洲国产欧美国产综合在线| 人妻熟女中文字幕aⅴ在线| 国产又粗又黄又硬又爽| 欧美3p在线观看一区二区三区| 日韩欧美制服诱惑一区在线| 三级等保密码要求条款| 中文字幕综合一区二区| 亚洲国产中文字幕啊啊啊不行了| 亚洲乱码中文字幕在线| 亚洲国产欧美一区二区丝袜黑人 | 天堂资源网av中文字幕| 日辽宁老肥女在线观看视频| 亚洲av香蕉一区区二区三区犇| av一区二区三区人妻| 日韩亚国产欧美三级涩爱| 久久精品国产亚洲精品166m| 欧美男人大鸡吧插女人视频| 成人高潮aa毛片免费| 这里有精品成人国产99| 丝袜美腿视频诱惑亚洲无| 99的爱精品免费视频| 亚洲激情偷拍一区二区| 91亚洲国产成人精品性色| 亚洲成人午夜电影在线观看| 中文字幕一区二区人妻电影冢本| 小穴多水久久精品免费看| av资源中文字幕在线观看| 亚洲中文字幕人妻一区| 国产黄网站在线观看播放| 久久99久久99精品影院| 2021久久免费视频| 中文字幕av第1页中文字幕| 亚洲av自拍天堂网| 一级黄色片夫妻性生活| 91免费放福利在线观看| 天天日天天干天天舔天天射| 亚洲国产最大av综合| 国产亚洲欧美另类在线观看| 久久艹在线观看视频| 国产在线免费观看成人| 黑人进入丰满少妇视频| 精品国产亚洲av一淫| 五十路老熟女码av| 日本人竟这样玩学生妹| av完全免费在线观看av| 亚洲欧美成人综合在线观看| 国产熟妇一区二区三区av| 国产97视频在线精品| 成年人该看的视频黄免费| eeuss鲁片一区二区三区| av天堂资源最新版在线看| 51国产成人精品视频| 亚洲第一黄色在线观看| 日韩黄色片在线观看网站| 无套猛戳丰满少妇人妻| 91天堂天天日天天操| 午夜精品亚洲精品五月色| 日韩a级精品一区二区| ka0ri在线视频| 亚洲成人午夜电影在线观看| 黄色av网站免费在线| 日韩亚国产欧美三级涩爱| 91九色porny国产在线| 国产精品视频男人的天堂| 国产黄色片在线收看| 美女张开两腿让男人桶av| 伊人成人综合开心网| 国产又粗又猛又爽又黄的视频在线| 成人乱码一区二区三区av| 亚洲区欧美区另类最新章节| 国产真实乱子伦a视频| 夜夜操,天天操,狠狠操| 国产91久久精品一区二区字幕| 亚洲精品国品乱码久久久久| 91精品国产91久久自产久强| 操的小逼流水的文章| 成年人免费看在线视频| 香港一级特黄大片在线播放| 国产又大又黄免费观看| 偷拍3456eee| 老鸭窝在线观看一区| 日韩加勒比东京热二区| 人妻无码中文字幕专区| 清纯美女在线观看国产| 性欧美激情久久久久久久| 日辽宁老肥女在线观看视频| 青青青青青手机视频| 天天日天天干天天干天天日| 欧美日韩国产一区二区三区三州| 狠狠的往里顶撞h百合| 最近中文字幕国产在线| 国产黄色大片在线免费播放|