必威体育Betway必威体育官网
当前位置:首页 > IT技术

Java中instanceof运算符用法详解

时间:2019-08-15 21:13:16来源:IT技术作者:seo实验室小编阅读:67次「手机版」
 

instanceof

一、 instanceof运算符可以确定对象是否属于一个特定的类。

该运算符是二目运算符,左边的操作元是一个对象,右边是一个类,当左边的对象是右边的类或子类创建的对象时,该运算符运算的结果是true,否则是false。
例:
class instanceOfDemo{
public static void main(String []args){
instanceOfDemo t=new instanceOfDemo();
    if(t instanceof instanceOfDemo){
    System.out.println("t是instanceOfDemo的实例");
    }
    }
}

二、对象 instanceof 运算符

前面我们只是简单提到instanceof运算符,因为掌握该运算符号需要类和子类的知识,instanceof运算符是java独有的双目运算符,其左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。

三、下面我们来看一下instanceof具体在组件及事件处理的MouseEvent事件中的使用(仔细观察其中的instanceof语句)

(1)example9_10.java

public class Example9_10{

public static void main(String[] args){

WindowMouse win=new WindowMouse();

win.settitle(“处理鼠标事件”);

win.setBounds(10,10,460,360);

}

}

(2)WindowMouse.java

import java.awt.*;

import javax.swing.*;

public class WindowMouse extends JFrame{

JTextfield text;//一个JTextField

JButton button;//一个JButton

JTextArea textArea;//一个JTextArea

MousePolice police;

WindowMouse(){

init();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

void init(){

setlayout(new FlowLayout());

text=new JTextField(8);

textArea=new JTextArea(5,28);

police=new MousePolice();

police.setJTextArea(textArea);

text.addMmouseListener(police);

button=new JButton(“按钮”);

button.addMouseListener(police);

addMouseListener(police);

add(button);

add(text);

add(new JScorollPane(textArea));

}

}

(3)MousePolice.java

import java.awt.event.*;

inport javax.swing.*;

public class MousePolice implements MouseListener{//监视器

JTextAream area;

public void setJTextArea(JTextArea area){

this.area=area;

}

public void mousePressed(MouseEvent e){

area.APPend(“\n鼠标按下,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

public void mouseReleased(MouseEvent e){

area.append(“\n鼠标释放,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

}

public void mouseEntered(MouseEvent e){

if(e.getSource() instanceof JButton)//获取发生鼠标事件的事件源(按钮)

area.app(“\n鼠标进入按钮,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

if(e.getSource() instanceof JTextField)//获取发生鼠标事件的事件源(文本框

area.app(“\n鼠标进入文本框,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

if(e.getSource() instanceof JFrame)//获取发生鼠标事件的事件源(窗口)

area.app(“\n鼠标进入窗口,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

}

public void mouseExited(MouseEvent e){

area.append(“\n鼠标退出,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

}

publiv void mouseClicked(MouseEvent e){

if(e.getClickCount()>=2)

area.setText(“鼠标连击,位置:”+”(“+e.getX()+”,”+e.getY()+”)”);

}

}

总结:注意其中的instanceof语句为

if(e.getSource() instanceof JButton)因为这个程序中只有一个JButton按钮所以用instanceof

而当程序中有多个JButton按钮时,

例如:JButton button1,button2;

则可以判断获取发生鼠标事件的事件源具体为button1时

即:if(e.getSource() ==button1)

相关阅读

逗号运算符和逗号表达式

转载博客:https://www.cnblogs.com/eniac12/p/4752143.html C语言提供一种特殊的运算符——逗号运算符。用它将两个(或多个)表达

逗号运算符和逗号表达式

title: 逗号运算符和逗号表达式 date: 2016-06-07 10:36:15 categories: C++ tags: - C - C++ - C++小结 逗号运算

理解js中instanceof运算操作符

什么是instanceof 在js代码中,我们经常使用 instanceof 就是判断一个实例是否属于某种类型,instanceof 可以在继承关系中用来判断

c语言中的移位运算符

数据在计算机中以补码存储   移位运算符:<<  左移运算符                >>  右移运算符一丶 << 左移运算符     

javascript关系运算符与逻辑运算符

原文来自javascript关系运算符与逻辑运算符一、关系运算符用于进行比较的运算符称作为关系运算符:小于(<)、大于(>)、小于等于(<=)

分享到:

栏目导航

推荐阅读

热门阅读