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.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++小结 逗号运算
什么是instanceof 在js代码中,我们经常使用 instanceof 就是判断一个实例是否属于某种类型,instanceof 可以在继承关系中用来判断
数据在计算机中以补码存储 移位运算符:<< 左移运算符 >> 右移运算符一丶 << 左移运算符
原文来自javascript关系运算符与逻辑运算符一、关系运算符用于进行比较的运算符称作为关系运算符:小于(<)、大于(>)、小于等于(<=)