• 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类一样枚举类可以实现一个或多个接口

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

    总结:

      ​ 学习需要日积月累,成就事业也需要积累,不懈地努力奋斗。积累是一种毅力,是由微小到伟大的必经之路,是成功的前提,是由量变到质变的过程。

  • 相关阅读:
    Netty源码解析 -- 内存对齐类SizeClasses
    Netty源码解析 -- 零拷贝机制与ByteBuf
    Netty源码解析 -- ChannelOutboundBuffer实现与Flush过程
    Netty源码解析 -- ChannelPipeline机制与读写过程
    Oracle体系结构概述与SQL解析剖析
    SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理|前后端分离(下)----筑基后期
    SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理(上)----筑基中期
    shiro入门学习--授权(Authorization)|筑基初期
    shiro入门学习--使用MD5和salt进行加密|练气后期
    Shiro入门学习---使用自定义Realm完成认证|练气中期
  • 原文地址:https://www.cnblogs.com/javacyq/p/13573415.html
Copyright © 2020-2023  润新知