黑马程序员——Java枚举和自动装箱

------- android培训java培训、期待与您交流! ----------                                                                            枚举类和自动装箱

    一、枚举

     枚举由不重复的常量构成,在java中使用enmu关键字定义枚举,所有的枚举会自动继承java.lang.enmu。

比如定义交通灯的枚举。

publicenumTrafficLamp {

RED ,GREED,YELLOW;

}

使用枚举可以结合使用switch语句构造功能。

//定义一个 enum类,包含TrafficLamp的所有情况

enum TrafficLamp{

RED,GREED,YELLOW;

}

class TrafficDemo {

//enmu经常和switch一起用

publicvoidrun (TrafficLamp light){

switch (light){

caseRED:for(int count=40;count>0;count--)

System.out. println("现在是:红灯"+count);

break;

caseGREED:for(int count=30;count>0;count--)

System.out. println("现在是:绿灯"+count);

break;

caseYELLOW:for(int count=5;count>0;count--)

System.out. println("现在是:黄灯"+count);

break;

}

}

publicstaticvoid main( String[]args ){

// TODO Auto-generated method stub

TrafficDemo td =newTrafficDemo ();

//调用RED状态

td .run( TrafficLamp.RED);

//调用TrafficDemo,循环一直转下去

while (true){

for(TrafficLamp light :TrafficLamp.values ())

td.run( light);

}

}

}

枚举可以在枚举类中选择带参数的构造方法,及带方法的枚举

import java. util. Random;

//java编程思想中的例子

//定义自动售货机

publicenumInput {

NIKEL (5),DIME (10),QUATER (25),DOLLAR (100),TOOTHOASTE (200),CHIPS (75),SODA (100),SIAO (50),

ABORT_TRABSACTION {

publicintamount (){

thrownewRuntimeException ("ABORT.amount()");

}},

STOP {

publicintamount (){

thrownewRuntimeException ("SHUT_DOWN.amount()");

}

} ;

//定义属性

intvalue;

Input (intvalue ){this.value=value;}

Input (){}

int amount(){returnvalue;}

//定义方法

static Random rand=new Random ();

publicstaticInput randomselections (){

returnvalues ()[rand.nextInt(values() .length-1)];

}

}

二、自动装箱

由于Java是面对对象的,而基本数据类型不是对象。为了解决这个问题,java建立了包装类,将基本数据类型包装成对象。

包装类为封装基本数据类型提供了两种构造方法:

Integer a=new Integer(14);//数据类型也行

Integer b=new Integer("14");//字符串形式也可以

Java JDK1.5以后,包装类可以自动装箱,当你需要用对象的时候,编译器会自动帮你完成上面的过程,但是会有额外开销。

------- android培训java培训、期待与您交流! ----------

黑马程序员——Java枚举和自动装箱

时间: 2024-12-28 01:24:31

黑马程序员——Java枚举和自动装箱的相关文章

黑马程序员——Java基础---IO(下)

黑马程序员——Java基础---IO(下) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供了File类.properties类.打印流.序列流等和输入输出相关的类,它们能够帮助我们更好的处理信息.下面将对它们进行简单的介绍. 一.正

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员——java基础——多线程

 黑马程序员--java基础--多线程 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元.线程在控制着进程的执行.一个进程中至少有一个线程. 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序,每个线程在栈区中都有自己的执行空间,自己的方法区.自己的变量.

黑马程序员——java基础---IO(input output)流字符流

黑马程序员——java基础---IO(input output)流字符流 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- io(input output)流特点: 1,io流用来处理数据之间的传输 2,java对数据的操作是通过流的方式: 3,java用于操作流的对象都在io包中: 4,流按操作数据分为两种:字节流和字符流: 5,流按流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象

黑马程序员---Java多线程

---------------------- Android开发.java培训.期待与您交流! ---------------------- 线程与进程是程序运行中体现的两个名词,它包含这不同的程序域.进程指的是一个正在运行的程序,如:360,QQ运行时就是不同的两个进程.当你打开windows任务管理器时,看到的每个进程就是此时windows中正在运行的程序.线程则就是进程中的一个个独立的控制单元,线程控制着进程的执行,也就是说每个正在运行的程序中就包括着很多的线程. 主线程:Java虚拟机运

黑马程序员–Java之多线程09

黑马程序员–Java之多线程09 一.线程和进程 在Java中,并发机制非常重要,程序员可以在程序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机制被称为多线程.多线程就是指一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程,它们会交替执行,彼此间可以进行通信.多线程是非常复杂的机制,在每个操作系统中的运行方式也存在差异,window操作系统是多任务操作系统,它以进程为单位.一个进程是一个包含有自身地址的程序,每个独立执行的程序都称为进程,也就是正在执行的程序.系统

黑马程序员--Java基础--01基本概念

1.Java的三大技术架构 JAVAEE(Java Platform Enterprise Edition):  开发企业环境下的应用程序,主要针对web程序开发: JAVASE(Java Platform Standard Edition): 完成桌面应用程序的开发,是其他两者的基础 JAVAME(Java Platform Micro Edition): 开发电子消费产品和嵌入式设备,如手机中的程序 我对三大技术构架理解 1.三大技术是指哪三大技术呢? 答:三大技术分别指JAVAEE,JAV

黑马程序员——Java基础---io(上)

黑马程序员——Java基础---io(上) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java I/O系统负责处理程序的输入和输出,I/O类库位于java.io包中,它对各种常见的输入流和输出流进行了抽象.如果数据流中最小的数据单元是字节,那么称这种流为字节流:如果数据流