`

老式枚举的使用方法

    博客分类:
  • java
阅读更多
import java.util.Enumeration;
import java.util.Vector;

class Cat2{
	private int catNumber;
	Cat2(int i){
		catNumber = i;
	}
	void print(){
		System.out.println("Cat number " + catNumber);
	}
}
class Dog2{
	private int dogNumber;
	Dog2(int i){
		dogNumber = i;
	}
	void print(){
		System.out.println("Dog number " + dogNumber);
	}
}
public class EnumerationTest {
	@SuppressWarnings("unchecked")
	public static void  main(String args[]){
		@SuppressWarnings("rawtypes")
		Vector cats = new Vector();     //集合是使用
		for(int i=0;i<7;i++){
			cats.addElement(new Cat2(i));  //添加元素的方法
		}
		cats.addElement(new Dog2(7));
		@SuppressWarnings("rawtypes")
		Enumeration e = cats.elements();   //枚举的前提
		while(e.hasMoreElements()){      //枚举元素是判断
			((Cat2)e.nextElement()).print();  //获得元素的方法
		}
	}
}

//运行时会有异常发生:
//Exception in thread "main" java.lang.ClassCastException: 
//Dog2 cannot be cast to Cat2
//at EnumerationTest.main(EnumerationTest.java:36)
//有兴趣的可以思考下原因?其实此问题实在是简单···



分享到:
评论

相关推荐

    枚举windows窗口

    4. `EnumWindow.dsp`:这是Visual Studio的老式项目文件,用于存储项目的构建设置。 5. `EnumWindow.exe`:这是编译后的可执行文件,运行这个程序可以在Windows环境下执行枚举窗口的功能。 6. `EnumWindow.rc` 和 ...

    PCI.rar_pci dos_pci枚举

    ZXUR.txt可能包含程序的使用说明、作者信息或其他相关文档,比如源代码的说明或者联系方式。如果你对程序的内部工作原理感兴趣,可以通过邮件联系作者获取源码,这通常能提供更深入的理解。 总的来说,这个资源对于...

    javascript的所有方法应用

    6. **数组**:使用`[]`创建数组,数组方法包括`push`(添加元素到末尾)、`pop`(移除并返回末尾元素)、`shift`(移除并返回首元素)、`unshift`(添加元素到开头)、`slice`(提取子数组)、`splice`(插入/删除...

    EnumSerial

    3. **设备检查**:`EnumSerial`可能还包括检查每个串口是否正被其他进程使用,或者获取设备的物理路径,这对于诊断和调试很有帮助。 4. **返回结果**:枚举完成后,函数将返回一个包含所有发现串口设备的信息列表,...

    JavaScript的常用方法的集合

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它的强大在于能够...在使用这些方法时,请确保进行充分的测试和验证,以确保代码的正确性和兼容性。希望这个集合能对你的JavaScript学习之路提供有价值的参考。

    贪吃蛇游戏java源码-Basic-Snake-Game:这是仅使用JAVA开发的基本的老式蛇游戏。所有源代码文件都已上传到此处,随时可以使用

    这些状态可以通过定义枚举类型并使用条件判断来管理。 7. **事件处理**: 除了键盘事件,游戏可能还需要处理其他事件,如开始新游戏、显示得分等。这些可以通过事件监听器和回调函数来实现。 8. **源码组织**: ...

    c#驱动打印com打印usb打印lpt口打印

    虽然在现代计算环境中已不常见,但某些工业应用或老旧设备可能仍然使用LPT口。C#可以通过读写LPT端口的内存映射来发送打印数据。 #### 驱动打印 驱动打印是指通过调用打印机驱动程序来完成打印任务的方式。C#中,...

    阿里巴巴编码指南

    4. **【强制】** 方法名、参数名、成员变量、局部变量统一使用`lowerCamelCase`风格,即首字母小写,后续每个单词首字母大写的形式。例如:`localValue`, `getHttpMessage()`, `inputUserId`。 5. **【强制】** ...

    简单的单机版的斗地主

    然后,开发者会构建游戏模型,这通常涉及数据结构的设计,如使用ArrayList或LinkedList存储牌组,用枚举类型表示牌的类型和值。接下来是AI的设计,AI的智能程度直接影响游戏体验。初级AI可能采用预设的出牌策略,而...

    与声音有关的c函数及其应用

    要让声音从耳机而不是主板喇叭传出,你需要使用音频库或API,因为主板喇叭的声音通常只适用于老式计算机。在现代系统上,你可以使用如Windows的waveOutWrite函数、Linux的ALSA或PulseAudio库、Mac OS的Core Audio等...

    javax.comm 读取串口

    本文将深入探讨`javax.comm`库的使用方法以及如何通过它来读取串口。 首先,`javax.comm`库是Sun Microsystems为Java设计的一个API,主要用于串行通信。它提供了`CommPortIdentifier`、`SerialPort`和`ParallelPort...

    用vb写的,实现rs232串口转USB

    由于RS232串口在现代计算机中逐渐被淘汰,因此,开发者常常需要找到方法来桥接这两种通信标准,使老式串口设备能在现代环境中继续工作。 在VB中实现RS232到USB的转换涉及到以下几个关键知识点: 1. **VB串口通信**...

    EnumNtSrv_demo

    1. **Windows API 调用**:在"EnumNtSrv_demo"中,开发者使用了Windows API来查询和枚举运行在操作系统上的NT服务。关键的API函数可能包括`EnumServicesStatusEx`,它允许程序遍历所有服务状态信息,如服务名称、...

    [ 内网渗透 ] 域管定位工具.zip

    下面我们逐一了解这些工具的功能和使用方法。 1. netview: netview 是一个老式的命令行工具,通常用于查看网络上的共享资源。在内网渗透中,它可以用来扫描网络上的活动主机,发现在线的域控制器,从而帮助定位...

    杀毒代码源码

    9. **kp.dsp/kp.dsw**:这些都是VC的老式项目文件,用于存储项目的配置信息,如编译选项、库依赖等。在较新的版本中,通常使用.sln和.vcxproj文件代替。 10. **PSAPI.H**:这是psapi库的头文件,包含定义的函数原型...

    DirectInput开发游戏方向盘

    设备初始化后,我们可以通过调用`IDirectInputDevice8::Acquire`方法来获取设备的控制权,然后使用`IDirectInputDevice8::GetDeviceState`或`IDirectInputDevice8::Poll`来定期查询方向盘的当前状态,包括角度、按钮...

    LIBUSB驱动USB摄像头

    - LIBUSB库的使用:理解LIBUSB的API,如设备枚举、I/O操作、同步/异步传输等。 - USB摄像头的硬件交互:识别设备,发送控制命令,接收图像数据。 - 可能的跨平台实现:考虑到Windows平台的代码(`cameras-win32.c`)...

    Java串口通信详解

    - 串口参数配置:使用SerialPort的setSerialPortParams()方法设置串口参数。 - 串口的读写:通过SerialPort的getInputStream()和getOutputStream()获取输入输出流,进而进行数据的读写操作。 3. 串口通信的通用模式...

    modern_pascal_introduction.pdf

    - **基础类概念**:定义类,创建对象,并使用属性和方法。 - **继承**:一个类可以继承另一个类的属性和方法,实现代码重用。 - **is和as关键字**:用于类型检查和类型转换,确保对象操作的正确性。 现代对象式...

Global site tag (gtag.js) - Google Analytics