zoukankan      html  css  js  c++  java
  • java_强化技术训练

     

     

    for-each循环:

    • 使用foreach循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, forearch 循环自动遍历数组和集合的每个元素

    • 语法格式:

      for(typevarName: array | collection) {

      ​ //varName自动迭代访问每一个元素

      }

    可变参数:

    • 若在定义方法时, 在最后一个形参的类型后增加三点(…), 则表明该形参可以接受多个参数值, 多个参数值被当成数组传入

    • 可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参

    • 调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组

    枚举类:

    ​ 在某些情况下, 一个类的对象是有限而且固定的(例如:季节类),这种实例有限而且固定的类, 在Java中被称为枚举类。

    例:

    枚举类:

    1 package com.cyq.Demo2;
    2 
    3 public enum  Season {
    4     SPRING,SUMMER,AUTUMN,WINTER;
    5 }

    使用枚举:

    复制代码
    
    
    package com.cyq.Demo2;

    import java.util.Scanner;

    import static com.cyq.Demo2.Season.*;
    import static java.lang.System.in;
    public class Demo1 {
    public static void main(String[] args) {
    System.out.println("Season.values");
    Season[] arr= Season.values();
    for (Season s :
    arr) {
    System.out.println(s.name());
    System.out.println(s.ordinal());
    System.out.println("--------------");

    }
    System.out.println(arr);
    System.out.println("=============================");

    System.out.println("请输入SPRING,SUMMER,AUTUMN,WINTER中的一个:");
    Scanner sc=new Scanner(System.in);
    Season seacon= Season.valueOf(sc.next());
    show(seacon);
    System.out.println("请输入0-3之间的数:");
    int s=Integer.valueOf(sc.next());
    show2(s);
    }

    public static void show(Season s){
    switch (s){
    case SPRING:
    System.out.println("春天来了!");
    break;
    case SUMMER:
    System.out.println("夏天来了!");
    break;
    case AUTUMN:
    System.out.println("秋天来了!");
    break;
    case WINTER:
    System.out.println("冬天来了!");
    break;
    default:
    System.out.println("输入错误!");
    }
    }
    public static void show2(int season){
    switch (season){
    case 0:
    System.out.println("春天来了!");
    break;
    case 1:
    System.out.println("夏天来了!");
    break;
    case 2:
    System.out.println("秋天来了!");
    break;
    case 3:
    System.out.println("冬天来了!");
    break;
    default:
    System.out.println("输入错误!");
    }
    }
    }
     
    复制代码

    运行效果图:

    枚举类和普通类的区别:

    • 使用 enum 定义的枚举类默认继承了java.lang.Enum类

    • 枚举类的构造器只能使用private访问控制符

    • 枚举类的所有实例必须在枚举类中显示列出(”,”分隔,”;”结尾). 列出的事例系统会自动添加publicstatic final 修饰

    • 所有的枚举类都提供了一个values方法, 该方法可以很方便地遍历所有的枚举值

    (JDK5.0中可以在 switch 表达式中使用枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定)

    实现接口的枚举类:

    • 和普通Java类一样枚举类可以实现一个或多个接口

    • 若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法

  • 相关阅读:
    二分图最大匹配
    Problems about trees
    Hackerrank Going to the Office
    多校题解
    HDU #2966 In case of failure
    K-D Tree
    UOJ #10 pyx的难题
    bzoj 1090 字符串折叠
    uva 1347 旅行
    bzoj 1059 矩阵游戏
  • 原文地址:https://www.cnblogs.com/dxgld/p/13622563.html
Copyright © 2011-2022 走看看