`
crelaber
  • 浏览: 3782 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

枚举笔记

阅读更多

静态导入

import static 语句导入一个类的静态方法,只需要写方法就可以调用

如:import static java.lang.Math.max;

import static java.lang.Math.*;//导入所有的静态方法

overload(重载)override(覆盖)的区别

for循环增强for(int arg : args)

自动装箱

Integer iobj = 3; 1.4以前的版本不行,以后的版本都可以

Integer iobj = new Integer(3); //1.4版本的写法

Integer i1 = 13;

Integer i2 = 13;

sysout(i1==i2);运行结果为true

Integer i1 = 137;

Integer i2 = 137;

sysout(i1==i2);运行结果为false

小的整数装箱为一个对象,而大整数则是不同的对象

原因将小于128的整数装箱为Integer对象时候,同时很多地方需要引用那个元素

就将该对象加入到内存中,所以上面的结果为true

方法的参数称为外部状态,而相同部分的称为内部状态

享元模式:对于许多地方需要使用到的小对象,则将该对象拿出来进行共享,从而

减少对象的个数

享元模式(flyweight)的典型应用是windwos系统的图标(文件夹图标)

 

一个类中如果有抽象的方法,则该类也必须是抽象的否则编译器会报错

内部类只能由子类来生成对象,子类要覆盖抽象父类的抽象方法

,同时也可以是采用匿名内部类来生成实例对象,也必须覆盖父类的抽象方法

如:

public abstract class WeekDay{

private WeekDay();

public final static WeekDay SUN = new WeekDay(){ //采用匿名内部类来生成实例

@override

public WeekDay nextDay(){

retrun SUN;

}

}

public abstract Weekday nextDay();   //抽象类的抽象方法

}

上例中的每个WeekDay对象都自己来覆盖类的抽象方法从而形成一个独立的类

枚举:每一个枚举都是一个对象

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。

如果需要查看某个类的打印信息则需要重写toString方法。

 

枚举的带构造方法

1、所有的其他信息都必须位于元素列表之后,元素列表以;结束

2、枚举的构造方法只能是私有的 

public enum WeekDay{

SUN,MON,WED,THI;

private WeekDay(){sysout("first")}

private WeekDay(int day){sysout("second")}

}

在调用枚举时候要对枚举对象进行初始化,初始化时候调用的空构造方法

如果想要枚举调用带有参数的构造方法,则上述枚举应该改为这个样子

public enum WeekDay{

SUN(7),MON,WED,THI; //SUN对象在初始化时候来调用有参数的构造方法。

private WeekDay(){sysout("first")}

private WeekDay(int day){sysout("second")}

}

必须其中的一个元素在()中添加入一个参数列表,如上例的7,就表示要使用枚举的那个构造方法

内部类有四个访问修饰符private protected public default

而外部类中只有2个访问修饰符 default和public

每个元素都类的一个实例对象

 

带有抽象方法的枚举,每个元素要变成一个对象则在每个对象后面用{}来实现他的抽象方法

public enum TrafficLamp{

RED(30){  //调用父类的有参构造方法并且new子类的对象

public TrafficLamp nextLamp(){

return GREEN;

}

},

GREEN(40){ //调用父类的有参构造方法并且new子类的对象

public TrafficLamp nextLamp(){

return YELLOW;

}

},

YELLOW(10){ //调用父类的有参构造方法并且new子类的对象

public TrafficLamp nextLamp(){

return RED;

}

};

public abstract TrafficLamp nextLamp();

private int time; //RED ,GREEN,YELLOW的time属性

private TrafficLamp(int time){

this.time = time ;

}

}

如果枚举永远只有一个元素,就可以作为一个单例来实现,换句话来说,如果要写

单例则可以使用枚举,而且枚举中只有一个元素,枚举默认是私有的构造方法


分享到:
评论

相关推荐

    MLDn学习笔记 —— JDK新特性(枚举)

    在Java编程语言中,JDK的新特性之一是枚举(Enum)。枚举是一种特殊的类,它提供了一种安全的方式来表示一组固定数量的常量。在本文中,我们将深入探讨枚举类型及其在JDK中的应用。 一、枚举的定义与使用 1. 基本...

    枚举类型的使用

    本代码笔记主要探讨了C#中的枚举类型及其在实际编程中的应用,特别强调了枚举结构数组的使用。下面将详细阐述枚举的定义、特点以及如何创建和操作枚举结构数组。 首先,枚举是C#中预定义的数据类型,允许我们定义一...

    java笔记.zip

    2020-4-10 java笔记 枚举类 2020-4-10 java 注解(Annotation) 2020-4-11 Java 集合 2020-4-15 java 泛型 2020-4-18 java IO流 2020-4-19 java 网络编程 2020-4-21 java反射 2020-4-22 java8 新特性 2020-4-27 单元...

    【Java基础笔记】枚举和注解.docx

    在Java编程语言中,枚举(Enum)和注解(Annotation)是两种非常重要的特性,它们分别用于定义固定的常量集合和提供元数据信息。以下是对这两个概念的详细说明: **一、枚举类** 1. **定义**: - 自定义枚举类:...

    java超强笔记

    在面向对象高级特性的部分,笔记可能包含抽象类、接口、内部类、匿名类、枚举,以及泛型和注解的使用。这些特性使得Java代码更加灵活且易于维护。 最后,笔记可能还会涉及一些设计模式,如单例模式、工厂模式、观察...

    Java工作笔记-枚举类型反射

    在Java编程语言中,枚举(enum)是一种特殊的类,用于定义一组预定义的常量。枚举类型的反射是Java反射API的一个应用,允许我们在运行时动态地获取关于枚举的信息,包括枚举的常量、方法等。下面将详细阐述如何通过...

    java学习笔记markdown

    11. **枚举与注解**:介绍Java中的枚举类型及其用法,以及注解的定义和应用,它们在现代Java开发中有着广泛的应用。 12. **Java 8及更高版本的新特性**:涵盖Lambda表达式、函数式编程、Stream API、日期时间API等...

    懒人笔记 一个 iOS 开源笔记 App.zip

    通过研究该项目的源代码,你可以学习到Swift的基本语法,包括变量声明、函数定义、控制流结构、面向对象编程以及Swift特有的特性,如枚举、协议和扩展。 二、UIKit框架 UIKit是iOS应用程序界面的核心框架,用于构建...

    java基础的详细案例笔记

    11. **枚举与注解**:枚举是Java中的特殊数据类型,而注解则是一种元数据,可以用于代码的元编程,笔记可能讲解它们的用法和作用。 以上只是对Java基础部分的一些基本概述,实际的"Java基础的详细案例笔记"应该包含...

    狂神说笔记内容.zip

    13. **枚举与注解**:Java中的枚举类型及其用法,注解的作用以及元注解。 14. **泛型**:理解泛型的基本概念,泛型类、泛型方法和泛型接口的应用。 15. **反射机制**:通过反射动态获取类的信息,创建对象,调用...

    Java学习笔记——良葛格

    JDK5.0引入了一些重要的新特性,例如自动内存管理的垃圾回收机制、枚举类型、匿名内部类、泛型以及增强的for循环(也称为foreach循环)。这些特性极大地提升了Java的可读性和实用性。 此外,笔记可能还会涉及异常...

    JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用

    在这篇学习笔记中,作者分享了如何利用JavaScript简单实现枚举类型以及如何将枚举应用到扑克牌的场景中。 首先,笔记中通过`creatEnum`函数的定义展示了如何创建一个自定义的枚举类型。`creatEnum`函数接收一个对象...

    大佬的java笔记

    6. 高级特性:如泛型、注解、反射、枚举等,这些都是Java语言特有的高级特性,能够极大提升编程的灵活性和代码的复用性。 7. Java虚拟机(JVM):Java程序的运行依赖于JVM,理解JVM的工作原理对于深入学习Java非常...

    枚举类与注解.xmind

    自己总结的java枚举类和注解的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者

    java学习笔记(11) 第11 章 - 枚举和注解(csdn)————程序.pdf

    Java中的枚举(enum)和注解(Annotation)是两种重要的语言特性,它们在实际编程中有着广泛的应用。本章将深入探讨这两种概念,并通过示例来解释它们的使用。 11.1 需求分析 在创建季节(Season)对象时,我们发现...

    OpenSSH 用户名枚举漏洞(CVE-2018-15473).zip

    OpenSSH 7.7及之前版本中存在用户枚举漏洞,该漏洞源于程序会对有效的和无效的用户身份验证请求发出不同的响应。 学习笔记

    非常详细javaSE学习笔记.rar

    10. **枚举与注解(Annotations)**:枚举类型和注解在Java中的应用,如使用注解进行编译时检查或运行时元数据标记。 11. **IO与NIO**:对比传统IO的阻塞模式,非阻塞式I/O(New IO,Java NIO)的使用和优势。 12. *...

    java全套培训笔记

    在JavaSE(标准版)部分,笔记可能会涵盖IO流、多线程、反射、枚举、注解等特性。IO流处理数据输入输出,多线程则是实现并发执行的关键,反射允许程序在运行时检查类的信息,枚举提供了一种创建常量的类型安全方式,...

    QT32-C# 语法全解读书笔记集, 包括C#枚举、C#数组、C#异常、C#转换等

    QT32-C# 语法全解读书笔记集涵盖了C#编程语言的核心概念,特别是对于初学者和希望深入理解C#的开发者来说,是一份宝贵的参考资料。以下是对标题和描述中涉及知识点的详细解释: 1. **C# 枚举(Enum)**: 枚举在C#...

    Halcon联合C#打开笔记本的摄像头

    设备的标识符通常可以通过系统枚举获取,或者直接指定摄像头的设备名。 3. **启动摄像头并捕获图像**: 使用`DevStart`函数启动摄像头,然后调用`DevGetImage`或`GenImage`来捕获一帧图像。这两个函数会返回一个...

Global site tag (gtag.js) - Google Analytics