首页 > 编程语言 >Java中的实用类讲解(上篇)

Java中的实用类讲解(上篇)

时间:2024-03-19 10:59:36浏览次数:40  
标签:Week case Java System 实用 枚举 讲解 println out

如果想观看更多Java内容 可上我的个人主页关注我,地址子逸爱编程-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/a15766649633?spm=1000.2115.3001.5343

使用工具 IntelliJ IDEA Community Edition 2023.1.4

使用语言 Java8 

代码能力快速提升小方法,看完代码自己敲一遍,十分有用

目录

1.Java API介绍

1.1 Java语言的强大之处

1.2 Java API常用的包

2.枚举 

2.1 枚举概述

2.1.1 枚举的语法 

2.1.2 枚举值遍历

2.1.3 枚举基础贯穿案例 

2.1.4 使用枚举时注意 

2.2 枚举的方法

2.2.1 枚举的常用方法

2.2.2 使用枚举方法贯穿案例

2.3 使用枚举的好处


1.Java API介绍

Java API(Java Application Programming Interface)即Java应用程序编程接口,它是运行库的集合,预先定义了一些接口和类,程序员可以直接使用这些已经被打包的接口和类开发具体的应用来节约大量的时间和精力。API除了有"应用编程接口"的意思,还特指API的说明文档,也被称为API帮助文档。

1.1 Java语言的强大之处

Java语言的强大之处在于提供了多种多样的类库,从而大大提高了程序的编程效率和质量。

1.2 Java API常用的包

java.lang
    编写java程序时使用最广泛的包,自动导入所有的程序中,包含了Java程序的基础类和接口。包装类、String类等常用的类都被包含在此包中。java.lang包还提供了用于管理类的动态加载、外部进程创建、主机环境查询和安全策略实施等系统操作的类。
java.util
    包含了系统辅助类,特别是Collection、List和Map等集合类。
java.time
    包含了对日期时间进行处理的类,如创建日期对象、格式化日期等。
java.io
    包含了对输入/输出有关的类,如文件操作等类。
java.net
    包含了与网络有关的类,如Socket、ServerSocket等类。
java.sql
    包含了与数据库相关的类,如Connection、Statement等类。

本总章节主要学习java.lang、java.util、java.time三个包中的常用类。

2.枚举 

2.1 枚举概述

在之前的内容中学习了Java有两种方式定义新类型:类和接口。对于开发大部分的情况来说,这两种方式已经足够了,但是在一些特殊情况下,这些方式就不适合了。例如,定义果树的生长状态,包括"生长期""采摘期""已死亡",需要定义一个Contants类,在其中定义三个静态常量分别记录三种状态。

但如果遇到以下需求,还需继续完善,进行烦琐的处理。

  • 需要为每个常量分配一个整型值,以便向数据库中录入数据。

在实际开发中,状态值以整型数据形式存储到数据库中效率更高,在程序中执行状态判断时使用整型效率更高。例如,生长期——0,采摘期——1,已死亡——2。 

  • 如果还是使用静态常量来定义的话,非常容易出错,例如,整型的常量值出现重复,编译器也不会给出任何提示。
  • 如果需要更强大的数据展示和处理功能,则需要自行编写。
  • 例如,遍历所有的果树生长状态信息,或者需要自动获取果树状态的个数等。
  • 自从Java1.5引入了枚举类型,这些问题得以解决。

2.1.1 枚举的语法 

在枚举中可以定义多个常量,表示不同的枚举值,即枚举元素,之间用逗号隔开;
在枚举中可以定义其他成员,包括构造方法等,置于枚举常量之后;
可以使用"枚举名.常量名"的形式取出枚举中的指定内容;

访问修饰符 enum 枚举名{
  常量1[,常量2...[;]]
  //[其他成员]
}

2.1.2 枚举值遍历

使用枚举类型的values()方法可以实现对枚举值的遍历操作,可以看以下示例来进行剖析理解:

2.1.3 枚举基础贯穿案例 

枚举类型

public enum Week {
    MON,TUE,WED,THU,FRI,SAT,SUN;
}

运行类代码

/**
 * 日程安排运行类
 */
public class WeekTest {
    /**
     * 查看日程安排方法
     * @param day 星期几
     */
    public void doWhat(Week day){
        switch (day){
            case MON:
            case TUE:
            case WED:
            case THU:
            case FRI:
                System.out.println("工作日,努力写代码!");
                break;
            case SAT:
                System.out.println("星期六,休息!看电影");
                break;
            case SUN:
                System.out.println("星期日,休息!打篮球!");
                break;
            default:
                System.out.println("地球上一个星期就7天。");
        }
    }
 public static void main(String[] args) {
        WeekTest weekTest=new WeekTest();
        System.out.println("foreach遍历枚举元素");
        for (Week day:Week.values()){
            weekTest.doWhat(day);//doWhat(Week day)方法里面是用来判断枚举类型然后打印内容的
        }
    }
}

运行结果

  • 以上的代码中,枚举类型Week可存储表示一周七天的枚举常量,使用"Week.THU"可输出表示星期四的枚举值。switch结构传入的变量day是Week类型,即枚举类型;case关键字后的常量要与之匹配,必须是Week中定义的枚举常量。
  • 在以上代码中,Week.values()方法表示取得枚举中全部内容,返回一个对象数组,这是枚举本身支持的一个方法。除此之外,关于Enum类的其他用法,此处不深入讲解,以后用到时可自行查看API帮助文档。

2.1.4 使用枚举时注意 

  1. 在switch结构中可以使用枚举类型作为判断变量,此时需注意,case关键字后一定不能在枚举值前加枚举类型名,如Week.THU,否则会出现编译错误。
  2. enum关键字表示的是java.lang.Enum类型,即使用enum声明的枚举类型,就相当于定义一个类,此类默认继承java.lang.Enum类,因此可使用其中定义的所有方法。此处不再深入讲解,以后用到时可自行查看API帮助文档。 

2.2 枚举的方法

每一个枚举类型成员都可被看作Enum对象。所有枚举实例都可以调用Enum类的方法,实现枚举的遍历、比较等操作,枚举的常用方法如下: 

2.2.1 枚举的常用方法

T[] values
    以数组形式返回枚举类型的所有成员;
T valueOf()
    将普通字符串转换为枚举实例;
int compareTo()

  •     比较两个枚举成员在定义时的顺序,结果为负整数。零或正整数,表示当前对象小于、等于或大于指定对象;
  •     比较同一枚举常量的序数差,如果相同就返回0,如果在方法后面的参数之前就返回负数,在方法后面的参数之后就返回正数;

int ordinal()
    获取枚举成员的索引位置 ;

2.2.2 使用枚举方法贯穿案例

枚举类型

public enum Week {
    MON,TUE,WED,THU,FRI,SAT,SUN;
}

运行类代码

/**
 * 日程安排运行类
 */
public class WeekTest {
    /**
     * 查看日程安排方法
     * @param day 星期几
     */
    public void doWhat(Week day){
        switch (day){
            case MON:
            case TUE:
            case WED:
            case THU:
            case FRI:
                System.out.println("工作日,努力写代码!");
                break;
            case SAT:
                System.out.println("星期六,休息!看电影");
                break;
            case SUN:
                System.out.println("星期日,休息!打篮球!");
                break;
            default:
                System.out.println("地球上一个星期就7天。");
        }
    }
 public static void main(String[] args) {
        WeekTest weekTest=new WeekTest();
        System.out.println("foreach遍历枚举元素");
        for (Week day:Week.values()){
            weekTest.doWhat(day);//doWhat(Week day)方法里面是用来判断枚举类型然后打印内容的
        }
//        for (int i = 0; i < Week.values().length; i++) {
//            weekTest.doWhat(Week.values()[i]);
//        }
        System.out.println("\n获取枚举的个数");
        System.out.println("一周有"+Week.values().length+"天.");
        System.out.println("\n使用索引遍历枚举元素");
        for (int i = 0; i < Week.values().length; i++) {
            System.out.println("索引"+Week.values()[i].ordinal()+",值"+Week.values()[i]);
        }
        System.out.println("\n枚举元素比较");
        System.out.println(Week.valueOf("MON").equals(Week.MON));
        System.out.println(Week.MON.compareTo(Week.TUE));
        System.out.println(Week.FRI.compareTo(Week.TUE));
//        weekTest.doWhat(Week.MON);
//        Week sat= Week.SAT;
//        weekTest.doWhat(sat);
    }
  }
}

运行结果

2.3 使用枚举的好处

在这些实例中,可以看出,枚举具有类似数组的特征,每个枚举元素都默认有一个对应的索引值,表示枚举元素的位置,初始值从0开始,能够通过索引访问枚举元素。同时,通过调用枚举类中的方法可以实现更多样化的数据操作,大大提高了编码效率,避免错误发生,简化代码
小结(使用枚举好处如下):
1.枚举可以使代码更易于维护,有助于确保为变量指定合法的、期望的值。
2.使用枚举赋值,只需输入枚举名和".",就可以显示所有枚举值。
3.枚举使代码更加清晰,允许用描述性的名称表示数据,使用时直观方便。

标签:Week,case,Java,System,实用,枚举,讲解,println,out
From: https://blog.csdn.net/a15766649633/article/details/136755814

相关文章

  • 十大排序算法--Java实现
    冒泡排序(BubbleSort)基本思想:冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。算法步骤:从第一个元素开始,比较相邻的元素。......
  • 【JavaScript编程实操10】1.实现一个函数,要求传递2个参数,返回两个参数的和 2.创建一个
    前言1、实现一个函数,要求传递2个参数,返回两个参数的和代码:实现效果:2、创建一个函数,传递两个参数,返回两个参数的相乘和相加的和代码:实现效果:总结前言    本次继续针对Javascript阶段的函数与对象相关方面的实操练习,共有2个实操,这两个实操具有相似性,只是一个......
  • 工作中Java最常见的6种OOM问题
    前言今天,跟大家一起聊聊线上服务出现OOM问题的6种场景,希望对你会有所帮助。1堆内存OOM堆内存OOM是最常见的OOM了。出现堆内存OOM问题的异常信息如下:java.lang.OutOfMemoryError:Javaheapspace此OOM是由于JVM中heap的最大值,已经不能满足需求了。举个例子:publicclass......
  • 招个Java工程师,却发现了一个宝藏平台
    一直关注磊哥的朋友都知道,磊哥出来创业(做Java就业指导)也快一年了,从最初的纠结彷徨、不知所措,到现在逐渐找到自己的节奏,也算是半个媳妇熬成婆了。磊哥现在每天做的事儿,就是通过文章和视频的方式分享Java干货,并且还能顺便赚点钱,解决自己的温饱问题,这种感觉真是太好了。既能帮......
  • 《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教
    1.简介经过宏哥长时间的查找,终于找到了一个含有iframe的网页。所以今天这一篇的主要内容就是用这个网页的iframe,宏哥给小伙伴或者童鞋们演示一下,在处理过程中遇到的问题以及宏哥是如何解决的。2.iframe是什么iframe就是我们常用的iframe标签:<iframe>。iframe标签是......
  • JAVA实战开源项目:农村物流配送系统(Vue+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1系统登录、注册界面2.2系统功能2.2.1快递信息管理:2.2.2位置信息管理:2.2.3配送人员分配:2.2.4路线规划:2.2.5个人中心:2.2.6退换快递处理:2.2.7客户评价:三、系统展示四、核心代码4.1查询商家4.2退换快递4......
  • JAVA实战开源项目:城市桥梁道路管理系统(Vue+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块三、系统展示四、核心代码4.1查询城市桥梁4.2新增城市桥梁4.3编辑城市桥梁4.4删除城市桥梁4.5查询单个城市桥梁五、免责说明一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的城市桥梁道路管理系统,支持管......
  • 学习java第十六天
    IOC入门案例1门案例思路分析管理什么?(Service与Dao)如何将被管理的对象告知IOC容器?(配置文件)被管理的对象交给IOC容器,如何获取到IoC容器?(接口)IOC容器得到后,如何从容器中获取bean?(接口方法)使用Spring导入哪些坐标?(pom.xml)2实现步骤【第一步】导入Spring坐标【第二......
  • java常用应用程序编程接口(API)——Stream概述
    前言:stream是jdk8以后新增的API,熟练操作后会非常实用。打好基础,daydayup!!StreamStream也称为Stream流,用于操作集合或者数组的数据。Stream流大量的结合了Lambda的语法风格,使代码更简洁,可读性更好 Stream的使用Stream的使用有三个步骤:1,获取Stream流,与数据源建立连接......
  • Java_EE企业级开发学习笔记——spring学习笔记第一章
    记录笔记。一.Spring介绍Spring是以IOC(控制反转)和AOP(面向切面编程)为内核的一个轻量级开源框架。二.Spring框架的优点1.非侵入设计使得应用程序对框架的依赖最小化。2.方便解耦对象的创建和依赖关系的维护都由Spring容器管理。......