instanceof关键字在我们平常敲代码时并不是经常用到,但是它在某些方面还是很重要的。比如说到画板保存着一块,我们若要同时绘制多种图形,想要把他们保存下来,这时instanceof的作用就体现了。
instanceof的用法其实很简单,例如:A instanceof B,如果instanceof左边的对象A含有右边B的类,那么这时返回的是boolean类型的值。所以instanceof经常是用于条件的判定。这很简单,但是可能会有点模糊,看看代码。
List<Shape> shapeList = new ArrayList<Shape>();//队列来保存数据。
绘制以下三种图形时分别用shapelist来保存图形对象。
public void mouseReleased(MouseEvent e) { int x2 = e.getX(); int y2 = e.getY(); g.drawLine(x1, y1, x2, y2); Line line = new Line(); line.setX1(x1); line.setY1(y1); line.setX2(x2); line.setY2(y2); shapeList.add(line); }
public void mouseClicked(MouseEvent e) { int x = e.getX(); int y = e.getY(); int width = 40; int height = 40; g.fillRect(x, y, width, height); Rect rect = new Rect(); rect.setX(x); rect.setY(y); rect.setWidth(width); rect.setHeight(height); shapeList.add(rect); }
public void mousePressed(MouseEvent e) { x1 = e.getX(); y1 = e.getY(); int width = 30; int height = 30; g.drawOval(x1, y1, width, height); Oval oval = new Oval(); oval.setX1(x1); oval.setY1(y1); oval.setWidth(width); oval.setHeight(height); shapeList.add(oval); }
//保存时:
if("保存".equals(command)){ File file = new Fil("C:\\Users\\Administrator\\Desktop\\java2.dat"); try { //文件输出流对象 FileOutputStream fos = new FileOutputStream(file); DataOutputStream dos = new DataOutputStream(fos); for(int i=0;i<shapeList.size();i++){ Shape shape = shapeList.get(i); //获取队列中的对象 if(shape instanceof Line){//如果是直线 Line line = (Line)shape; dos.writeInt(1); dos.writeInt(line.getX1()); dos.writeInt(line.getY1()); dos.writeInt(line.getX2()); dos.writeInt(line.getY2()); } if(shape instanceof Rect){//如果是矩形 Rect rect = (Rect)shape; dos.writeInt(2); dos.writeInt(rect.getX()); dos.writeInt(rect.getY()); dos.writeInt(rect.getWidth()); dos.writeInt(rect.getHeight()); } if(shape instanceof Oval){//如果是椭圆 Oval oval = (Oval)shape; dos.writeInt(3); dos.writeInt(oval.getX1()); dos.writeInt(oval.getY1()); dos.writeInt(oval.getWidth()); dos.writeInt(oval.getHeight()); } } fos.close(); } catch (Exception e1) { e1.printStackTrace(); } }
这里我用了三个例子,直线、矩形和椭圆。我这样做的前提是,我已经建好了Line、Rect和Oval(其属性get\set均有)三个对象同时去继承Shape类,而在Shape类当中,我们不必要去写任何的代码,当然也可以根据情况来适当去写一些。这里用了instanceof之后,可以很直接的将已经在画板上画好的的图形按照不同的类型来保存,这样的过程更加清晰明了。
相关推荐
### instanceof 关键字详解 在Java编程语言中,`instanceof`是一个十分重要的关键字,用于判断一个对象是否属于特定的类或接口。本文将详细解释`instanceof`的关键特性和使用场景,并通过示例代码加深理解。 #### ...
java学习-java中的继承extents和instanceof关键字
day10_22_用instanceof关键字进行类型判断
第21天,super,instanceof关键字的使用以及多态的认识
面向对象编程是Java语言的核心特性之一,而`instanceof`关键字在Java中扮演着重要的角色。本章将深入探讨`instanceof`关键字的使用、原理以及它在实际开发中的应用场景。 `instanceof`关键字用于判断一个对象是否...
Java 中的 instanceof 关键字理解 Java 中的 instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。它通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 instanceof ...
《深入理解Java `instanceof` 关键字的实现机制》 `instanceof` 是Java语言中一个非常重要的关键字,它用于判断对象是否属于某个类或其子类(或实现了某个接口)。在Java的世界里,`instanceof` 关键字扮演着类型...
计算机后端-Java-Java核心基础-第14章 面向对象06 05. instanceof关键字的使用.avi
在Java编程语言中,`instanceof`关键字是一个非常重要的工具,它用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者在运行时检查一个对象的类型,从而进行更加灵活的代码控制。本篇文章将深入...
PHP中的instanceof关键字是一个非常有用的运算符,它用来检查一个对象是否是某个类的实例,或者是否实现了某个接口。instanceof关键字是在PHP5版本中引入的,之前版本的PHP并不支持此功能。该关键字的出现,让PHP在...
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,尤其对于理解面向对象编程的精髓至关重要。这个关键字主要用于检查一个对象是否属于某个类、其子类或实现了某个接口。在"288.286.JAVA基础教程_面向对象...
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,它主要用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者确定对象的实际类型,从而在运行时进行类型检查,执行条件操作或者执行多...
instanceof 马克-to-win java视频的详细的描述介绍
Java中的`final`和`instanceof`关键字在编程中扮演着不同的角色,它们各有各的用途和限制。这里我们将深入探讨这两个关键字的区别及其在Java编程中的应用。 首先,`final`关键字是一个非常重要的限定符,它可以在三...
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。 instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留...
Java中的`instanceof`关键字是程序在运行时检查对象类型的强大工具。它是Java语言中用于类型判断的关键字,能够帮助开发者确定对象是否属于特定类或其子类(或实现的接口)的实例。`instanceof`操作符返回的是一个...