【Java学习笔记】枚举

Java基础之Java枚举 絮叨 昨天刚好有遇到一个枚举的小问题,然后发现自己并不是那么熟悉它,然后在开发中,枚举用的特别多,所以有了今天的文章。 什么是枚举 Java中的枚举是一种类型,顾名思义:就是一个一个列举出来。所以它一般都是表示一个有限的集合类型,它是一种类型,在维基百科中给出的定义是: 在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠.。枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MO 阅读详情

枚举(enum)

一、基本介绍

  • 引出关键字:enum,全称为enumerate

  • 枚举是一组常量集合

  • 理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象

二、使用场景

当一个类的属性有限定条件时(例如一个星期只能有七天),可以使用枚举类(特点:只读不改)

三、实现枚举的方式

1. 自定义类实现枚举

特点如下(构建方法四步走)

  • (1)构造器私有化,不让 new 对象

  • (2)在类的内部直接创建固定对象(使用public修饰:对外暴露对象)

  • (3)不需要提供set()方法,因为枚举对象值通常为只读。

  • (4)对枚举对象/属性使用 final + static 共同修饰,实现底层优化

    • static :可以通过类名直接访问

    • final :底层优化,和 static 一起使用不会导致类的加载

补充内容

  • (5)枚举对象名称通常全都大写(由于使用了final修饰),常量的命名规范。

  • (6)枚举对象根据需要,也可以有多个属性

2. 使用enum关键字实现枚举

  • (1)class —> enum,不能再继承其他类

  • (2)枚举对象必须位于枚举类的开头,不同对象用逗号隔开,最后一个对象后使用分号

    • 枚举对象格式:对象名(实参)

    • 说明:如果创建时,调用的是无参构造器,实参列表和小括号都可以省略

  • (3)enum 类底层是继承了 java.lang.Enum 这个类的,即创建枚举类时必须明确调用哪个构造器

  • (4)枚举对象底层是final + static 共同修饰的,和自定义类实现枚举是等价的

    • 例如:public final static season SPRRING = new season("春天","温暖")等价于SPRING("春天","温暖")

四、追寻 enum 类的底层源码(使用javap反编译)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五、enum 类的成员方法

方法名详细描述
valueOf传递枚举类型的 Class 对象和枚举常量名称给静态方法 valueOf,会得到与参数匹配的枚举常量。
toString得到当前枚举常量的名称。你可以通过重写这个方法来使得到的结果更易读。
equals在枚举类型中可以直接使用 == 来比较两个枚举常量是否相等。Enum 提供的这个 equals() 方法,也是直接使用 == 实现的。它的存在是为了在 Set、List 和 Map 中使用。注意,equals() 是不可变的。
hashCodeEnum 实现了 hashCode() 来和 equals() 保持一致。它也是不可变的。
getDeclaringClass得到枚举常量所属枚举类型的 Class 对象。可以用它来判断两个枚举常量是否属于同一个枚举类型。
name得到当前枚举常量的名称。建议优先使用 toString()。
ordinal得到当前枚举常量的次序。
compareTo枚举类型实现了 Comparable 接口,这样可以比较两个枚举常量的大小(按照声明的顺序排列)
clone枚举类型不能被 Clone。为了防止子类实现克隆方法,Enum 实现了一个仅抛出 CloneNotSupportedException 异常的不可变 Clone()。

常用方法的说明

请添加图片描述

六、enum实现接口

通过类名调用在类中创建的对象实例,即eunm 类名 . 创建对象的对象名(这就表示 enum 的一个实例对象),通过对象调用方法


案例:设置季节类

分析:季节只有四季

  • 1. 内容是受到限制的

  • 2. 不能创建新的对象

  • 3. 对象的信息不能被修改

一、自定义类实现枚举

代码示例

package enum_;

public class main {
    public static void main(String[] args) {
        // 直接访问类中创建的对象,用过 toString 方法重写后会输出对象的信息
        System.out.println(season.SPRRING);
        System.out.println(season.SUMMER);
        System.out.println(season.AUTUMN);
        System.out.println(season.WINTER);
    }
}

class season{
    // 对象属性私有化
    private String name;
    private String info;

    // 创建实例对象提供给其他类进行读取
    public final static season SPRRING = new season("春天","温暖");
    public final static season SUMMER = new season("夏天","炎热");
    public final static season AUTUMN = new season("秋天","凉爽");
    public final static season WINTER = new season("冬天","寒冷");

    // 构造器私有化
    private season(String name, String info) {
        this.name = name;
        this.info = info;
    }

    public String getName() {
        return name;
    }

    public String getInfo() {
        return info;
    }

    // 重写 toString 方法,输出对象的信息
    @Override
    public String toString() {
        return "season{" +
                "name='" + name + '\'' +
                ", info='" + info + '\'' +
                '}';
    }
}

// 输出结果
season{name='春天', info='温暖'}
season{name='夏天', info='炎热'}
season{name='秋天', info='凉爽'}
season{name='冬天', info='寒冷'}

二、使用enum关键字实现枚举

代码示例

package enum_;

public class main {
    public static void main(String[] args) {
        // 直接访问类中创建的对象,用过 toString 方法重写后会输出对象的信息
        System.out.println(season.SPRING);
        System.out.println(season.SUMMER);
        System.out.println(season.AUTUMN);
        System.out.println(season.WINTER);
        System.out.println(season.season);
    }

}

enum season{

    // 枚举对象必须位于枚举类的开头
    SPRING("春天","温暖"),SUMMER("夏天","炎热"),
    AUTUMN("秋天","凉爽"), WINTER("冬天","寒冷"),
    season;

    /*
        使用枚举对象代替了
        public final static season SPRRING = new season("春天","温暖");
        public final static season SUMMER = new season("夏天","炎热");
        public final static season AUTUMN = new season("秋天","凉爽");
        public final static season WINTER = new season("冬天","寒冷");
     */

    // 对象属性私有化
    private String name;
    private String info;

    // 构造器私有化
    private season(){

    }

    private season(String name, String info) {
        this.name = name;
        this.info = info;
    }

    public String getName() {
        return name;
    }

    public String getInfo() {
        return info;
    }

    // enum类在底层继承了父类,在子类中不重写该方法
    // 调用父类的方法,输出的是对象的名称
}

注意:子类不重写 toString 方法,enum类在底层继承了父类,调用父类的方法,输出的是对象的名称

三、enum成员方法

请添加图片描述

代码示例

package enum_;

public class main {
    public static void main(String[] args) {
        season spring = season.SPRING;

        // name 方法
        System.out.println("1. 调用 name() 方法:" + spring.name());
        System.out.println("spring.name() = " + spring.name());
        System.out.println();

        // ordinal 方法:从 0 开始编号
        System.out.println("2. 调用 ordinal() 方法");
        System.out.println("spring.ordinal() = "+ spring.ordinal());
        System.out.println();

        // values 方法 :返回的是数组,存储 enum类 中的所有常量
        System.out.println("3. 调用 values() 方法,遍历数组,返回所有常量");
        season[] seasons = season.values();
        /*
        使用增强for循环
        for(变量类型 变量名:数组或集合)
         */
        for(season s:seasons){
            System.out.println(s);
        }
        System.out.println();

        // valueOf 方法:判断常量是否存在于enum类中,存在则返回常量名,否则报异常
        System.out.println("4. 调用 valueof() 方法");
        System.out.println("season.valueOf(\"AUTUMN\") = " + season.valueOf("AUTUMN"));
//        System.out.println("season.valueOf(\"hi\") = " + season.valueOf("hi")); // 会报异常
        System.out.println();

        // compareTo() 方法:计算两个枚举常量位置序号的差值
        System.out.println("5. 调用 compareTo() 方法");
        System.out.println("season.WINTER.compareTo(season.SPRING) = " + season.WINTER.compareTo(season.SPRING));
        System.out.println();
    }

}

enum season{

    // 枚举对象必须位于枚举类的开头
    SPRING("春天","温暖"),SUMMER("夏天","炎热"),
    AUTUMN("秋天","凉爽"), WINTER("冬天","寒冷");

    // 对象属性私有化
    private String name;
    private String info;

    // 构造器私有化
    private season(){

    }

    private season(String name, String info) {
        this.name = name;
        this.info = info;
    }

    public String getName() {
        return name;
    }

    public String getInfo() {
        return info;
    }

    // enum类在底层继承了父类,在子类中不重写该方法
    // 调用父类的方法,输出的是对象的名称

    /*
        enum类的 toString 方法

        public String toString() {
            return name;
        }
     */
}

// 输出结果
1. 调用 name() 方法:SPRING
spring.name() = SPRING

2. 调用 ordinal() 方法
spring.ordinal() = 0

3. 调用 values() 方法,遍历数组,返回所有常量
SPRING
SUMMER
AUTUMN
WINTER

4. 调用 valueof() 方法
season.valueOf("AUTUMN") = AUTUMN

5. 调用 compareTo() 方法
season.WINTER.compareTo(season.SPRING) = 3

四、enum 实现接口

代码示例

package enum_;

public class main {
    public static void main(String[] args) {
        // season.INTERFACE_METHIOD 是 enum 类的一个实例对象,通过对象调用方法
        season.INTERFACE_METHIOD.hi();
    }

}

interface A{
    public void hi();
}

enum season implements A{

    // 枚举对象必须位于枚举类的开头
    SPRING("春天","温暖"),SUMMER("夏天","炎热"),
    AUTUMN("秋天","凉爽"), WINTER("冬天","寒冷"),
    INTERFACE_METHIOD;

    // 对象属性私有化
    private String name;
    private String info;

    // 构造器私有化
    private season(){

    }

    private season(String name, String info) {
        this.name = name;
        this.info = info;
    }

    public String getName() {
        return name;
    }

    public String getInfo() {
        return info;
    }

    public void hi(){
        System.out.println("在 enum 类中实现了接口的 hi() 方法");
    }
}
JAVA的枚举 本例和上例的执行结果完全相同。 阅读详情

相关推荐

Java -枚举的使用

枚举常量更简单安全。枚举具有内置方法 ,代码更优雅缺点:3. 不可继承,无法扩展,【从构造的方法的私有性就能看出来】1、枚举 将常量组织起来统一进行管理,更简单安全。2、枚举本身就是一个类,其构造方法默认为私有的,且都是默认继承于 java.lang.Enum3、 枚举可以避免反射和序列化问题:枚举类非常安全!4、不可继承,无法扩展。5、枚举具有内置方法 ,代码更优雅。

ryy1999的博客 3500

java枚举

枚举就是相当于一种来存放常量的特殊的类,是一种新的常量定义方式,提供了安全检查功能,简而言之就是把常量搞的有对象的特性了,类型也是和类差不多所以方法调用枚举类型的常量时其他类型的常量无法没方法调用。下面例子有。类型安全紧凑有效的数据定义可以和程序其他部分完美交互运行效率高。

m0_56597578的博客 1万+

Unity布娃娃系统 Ragdoll Mecanim Mixer使用

6. 选完之后,左键下面的hip等角色各个部位不松开鼠标,拖拽连接到上面Amature的各个部位,如图,下面所有部位都连接完之后,第二步点击Configure Selected Bones确认你的部位连接选择。要做一个布娃娃和动画混合的项目,这个插件是比较不错的,搜了一圈文章教程也是抄来抄去,抄的没有头没有尾,自己摸索着用了一下,记录使用过程吧。8. 之后就点击步骤7图一中的Create Ragdoll,会发现player结构发生变化,如图。4. 添加完脚本之后会显示你的player结构,如图。

SuShengQuanshiW的博客 1647

Java枚举

枚举全称Enumeration [ˌ ɪnuːməˈ reɪʃn],简称Enum或者enum。枚举是一组常量的集合。枚举类属于一种特殊的类,里面只包含一组有限的特定的对象。枚举的出现可以解决上述的问题。步骤 :①将自定义类的构造器私有化,使其不能被随随便便地new出对象。②取消类中提供的setXxx方法,仅保留getXxx方法,因为“枚举类”对象仅可读,不能随便修改对于对象的描述。③直接在自定义类中创建一组对象,使用的组合实现底层优化。并且要对外暴露这组对象,因此要添加public修饰符。

lmd187的博客 1万+

基于YOLOv8的多类别检测模型融合实战:从数据集重构到模型训练

本文详细介绍了如何将多个单一类别的YOLOv8检测模型融合为一个高效的多类别检测模型。通过重构数据集、利用预训练模型生成新标签,并重新训练,解决了多模型并行带来的速度慢、资源占用高和部署复杂等问题。实战流程涵盖数据准备、标签生成、模型训练与评估,旨在帮助开发者构建性能优异的YOLOv8多类别检测模型。

kmeans3miner的博客 227

“风色幻想XX:交错轨迹游戏卡顿:从解决d3dx9_xx.dll缺失开始——风色幻想XX优化指南

《风色幻想XX:交错轨迹》作为一款深受玩家喜爱的角色扮演游戏,以其丰富的剧情、独特的角色设定和精美的画面赢得了广泛的赞誉。然而,在游戏过程中,部分玩家可能会遇到游戏卡顿的问题,这不仅影响了游戏体验,还可能让玩家错失精彩的剧情和战斗瞬间。在众多导致游戏卡顿的因素中,d3dx9_xx.dll文件的缺失往往是一个不容忽视的原因。

czl922的博客 1255

枚举 -- java学习笔记

本文章是通过学习B站视频韩顺平30天学java写的笔记 2022/2/20

蓝鸟x的博客 413

如何把DeepSeek这个奈斯工具接入到Pycharm里

DeepSeek接入到Pycharm中,提高编程效率,以及帮助解决遇到的问题。

学无止境,何以言满 2621

Java6学习笔记53——枚举类型(更新)

本文已搬家至【Java学习笔记】枚举类型

gnuhpc的专栏 1361

Python 爬虫教程:财经新闻实时抓取(最新资讯 + 关键词提取)

在当今信息爆炸的时代,财经新闻的实时获取对于投资者、研究人员以及普通大众来说都具有重要的价值。通过 Python 爬虫技术,我们可以高效地抓取财经新闻,并提取其中的关键信息,以便更好地进行数据分析和决策支持。本文将详细介绍如何使用 Python 编写一个财经新闻实时抓取系统,并结合关键词提取技术,帮助读者快速掌握 Python 爬虫的核心技能。

yansideyucsdn的博客 1049

VTK在QT与非QT环境下使用的区别

VTK可以在QT框架内使用,也可以独立于QT使用,这两种使用方式在架构、交互和渲染方面有显著差异。

深之JohnChen的专栏 628

JAVA学习笔记——第十一章 枚举和注解

JAVA学习笔记——第十一章 枚举和注解,包括面向对象高级的作业+枚举和注解,干货满满,这一章枚举是重点,注解主要是了解基本的几个和元注解即可

showy0的博客 1419

Go语言Gin框架项目:从零到一搭建一个用户管理系统

本文介绍了一个基于Go语言Gin框架开发的用户管理系统。系统采用MySQL数据库存储数据,使用Bootstrap 5构建现代化UI界面,实现了完整的CRUD功能。主要特点包括:RESTful API设计、前后端双重表单验证、实时搜索功能、SQL防注入措施以及响应式布局。项目结构清晰,包含数据库配置、用户模型、处理器和前端模板等模块。系统提供用户列表展示、新增/编辑表单、删除确认等功能,通过参数化查询确保安全性,并支持按姓名或邮箱搜索用户。

数据知道的博客 3994

Java 枚举学习笔记

访问修饰符] enum 枚举类名 {枚举值1, 枚举值2, ..., 枚举值N;SUCCESS(200, "成功"),ILLEGAL_ARGUMENT(401, "无效参数"),NEED_LOGIN(403, "权限不够"),ERROR(500, "服务器错误");枚举是一种强大的数据类型,用于表示一组固定的常量。枚举提供了类型安全、代码简洁和可读性高的优势。通过为枚举添加方法和字段,可以实现更复杂的功能。

2301_78498098的博客 425

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Java学习笔记——枚举

枚举是一个特殊的类,一般表示一组常量,例如一年四季,一年的十二个月以及一周七天等。

D77的博客 1874

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java学习笔记 八、枚举和注解

Java学习笔记 八、枚举和注解

qq_43681634的博客 344

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Java】枚举类【主线学习笔记】

枚举类;Java是一门功能强大且广泛应用的编程语言,具有跨平台性和高效的执行速度,广受开发者喜爱。在接下来的学习过程中,我将记录学习过程中的基础语法、框架和实践技巧等,分享学习心得,对自己学习过程进行整理和总结,也希望能为其他学习Java的朋友提供一些帮助和参考。

CBCY_csdn的博客 566

Java 枚举——Java学习笔记

枚举 枚举是一种特殊的类,也可以作为内部类定义在类中 当一个类的对象只有固定的几个值的时候,就可以使用枚举 就像季节只有:春夏秋冬;性别只有:男女 特点: 1、枚举类中第一句必须是实例对象的声明,多个实例对象之间使用逗号隔开,如果一个枚举类没有声明实例对象,那么它就没有实例。实例对象前面其实是public static final修饰,不可修改 2、如果枚举类中没有实例,类中的第一行代码也需要写一个 ;这样才能通过编译 3、枚举类中都有一个values方法,返回枚举类中的所有实例对象 4、枚举

编程大白菜 265

OneNote JAVA学习笔记2:装箱,枚举,注解

CAnCErWu的博客 254

Java学习笔记—枚举

enum基本用法 1.enum在这样使用时分号不是必须的。 public enum Season{ SPRING,SUMMER,AUTUMN,WINTER } 2.enum在使用时,会创建 ordinal() 方法,该方法会标明枚举常量的声明顺序。还会生成 static values() 方法,会按照顺序返回常量值组成的数组: public static void main(String[] args){ for(Season s:Season.values()){ println(s.ordin

qq_38237213的博客 211

枚举_Java学习笔记

枚举是一种特殊的“类”,用来表示有限且固定的一组常量。季节,只有春夏秋冬;性别,只有男和女;订单状态,只有“已支付”“未支付”“已发货”“已完成”。定义了一个类Season。private Season() {} // 构造器是私有的,防止别人随便创建新对象是不是感觉很像常量?但比常量更强的是:它限定类型。现在这个方法只能传入Season枚举类型的值,如果你写,编译器直接报错。只能传入 Season 类型的对象。

sheansavage的博客 818

java学习笔记10--枚举

在JDK1.5之前,java可以有两种方式定义新类型:类和接口。对于大部分面向对象编程来说,这两种方法看起来似乎足够了,但是在一些特殊情况下,这些方法就不适合。例如,想定义一个Color类,它只能有Red 、Green、Blue三种值,其他的任何值都是非法的,那么JDK1.5之前虽然可以构造这样的代码,但是要做很多的工作,也有可能带来各种不安全的问题。而JDK1.5之后引入的枚举类型(Enum)就

itmyhome的专栏 3142

Java基础枚举学习笔记

Java基础枚举学习笔记一.什么是枚举?二.实现枚举的方式1.自定义实现枚举2.使用enum关键字实现枚举三.Enum常用方法四.枚举类实现接口 一.什么是枚举? 枚举是一组常量的集合。 可以这样理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。 比如说有个季节的对象,而季节只有春夏秋冬四个季节并且是无法修改的,那我们传统的创建对象 的方式就没办法实现了,因此,这样的设计不好,所以我们就需要枚举类 枚举类就是把具体的对象一个一个列举出来 传统方式举例: public class Enumerati

cc1373709409的博客 512

java中枚举入门_Java基础:枚举学习笔记

枚举概述枚举(enumeration)是Java1.5引入的新特性,枚举类是一种特殊的类class,通过关键字 enum 来定义。之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。枚举的特性枚举类的构造方法强制被私有化,即枚举类不能实例化所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继...

weixin_32334209的博客 310
上一篇: 【Java学习笔记】内部类(重点)
下一篇: 【Java学习笔记】注解
jackson凌
博客等级 码龄2年 476粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackson凌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值