java中this的用法?
2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次
java中this的用法?
import java.awt.*;
import java.awt.event.*;
//TwoListen类同时实现MouseMotionListener和MouseListener两个接口
public class TwoListen implements MouseMotionListener,MouseListener
{
private Frame f;
private TextField tf;
public static void main(String[] args)
{
TwoListen two=new TwoListen();
two.go();
}
public void go()
{
f=new Frame("Two listeners example");
f.add(new Label("Clic and drag the mouse"),"North");
tf=new TextField(30);
f.add(tf,"South");
//注册监听程序
f.addMouseMotionListener(this);//(************************)
f.addMouseListener(this); //(************************)
f.setSize(300,300);
f.setVisible(true); //(************************)
}
//实现MouseMotionListener接口中的方法
public void mouseDragged(MouseEvent e)
{
String s="Mouse dragging:X="+e.getX()+"Y="+e.getY();
tf.setText(s);
}
public void mouseMoved(MouseEvent e){}
//实现MouseListener接口中的方法
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e)
{
String s="The mouse entered";
tf.setText(s);
}
public void mouseExited(MouseEvent e)
{
String s="The mouse has left the building";
tf.setText(s);
}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}
请问我用//(*******************)标记的那三句中this具体是什么意思?指代什么的,能用什么替换吗?
我原来认为this是用来表示生成的对象的,那么这里生成的对象不是two吗?怎么我用two替换后就不能运行了呢?
哪位老兄知道的请解释详细一点,请把我上边的几个问题都回答一下,要是我觉得答案很好的话,会再追加二十分,
谢谢.
请问这里的this能用什么替换,一定要用this吗?(如果知道能用什么替换的话,我可能比较好理解一点)如果是指针的话,请说一下指针指向的是什么,具体是怎么指向的?我刚学JAVA,请仔细说一下,谢谢。还有,JAVA中不是不用指针吗,那this怎么又是隐含指针了呢?我真是很糊涂啊,请耐心教教我!
1、this指向当前类的对象,也就是TwoListen类的对象。由于MouseMotionListener,MouseListener 都是接口,因此
f.addMouseMotionListener(this);//(************************)
f.addMouseListener(this); //(************************)
中分别需要一个实现了MouseMotionListener和MouseListener接口的类的实例。
在本例子中 TwoListen类都实现了这两个接口,因此可以用本类的实例来做参数。或者新建一个实现了这两个接口的类,再用这个类的实例做参数。
2、在该例子中,this指向生成的two对象。为什么用two替换后就不能运行了呢?
因为two是在main方法中定义的,是局部变量;而在go方法中并不能访问其他方法中定义的局部变量。
如果把two定义为全局变量,如:
static TwoListen two;
再在main方法中定义:
two=new TwoListen();
这时就可以用two代替this了
java中this的用法?的更多相关文章
- 转:十八、java中this的用法
http://blog.csdn.net/liujun13579/article/details/7732443 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它, ...
- Java 中 synchronized的用法详解(四种用法)
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.本文给大家介绍java中 synchronized的用法,对本文感兴趣的朋友一起看看吧 ...
- java成神之——java中string的用法
java中String的用法 String基本用法 String分割 String拼接 String截取 String换行符和format格式化 String反转字符串和去除空白字符 String获取 ...
- java中stringBuilder的用法
java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...
- 第一篇 网站基础知识 第4章 Java中Socket的用法
第4章 Java中Socket的用法 4.1 普通Socket的用法 Java中的网络通信是通过Socket实现的,Socket分为ServetSocket和Socket两大类,ServetSocke ...
- Java中的Socket用法
转发链接:https://www.cnblogs.com/zhanglei93/p/6217384.html (1)Java中的Socket用法 Java中的Socket分为普通的Socket和Nio ...
- 初探java中this的用法
一般this在各类语言中都表示“调用当前函数的对象”,java中也存在这种用法: public class Leaf { int i = 0; Leaf increment(){ i++; retur ...
- Java中getResourceAsStream的用法
首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以'/'开头时默认是从此类所在 ...
- Java中Synchronized的用法
原文:http://blog.csdn.net/luoweifu/article/details/46613015 作者:luoweifu 转载请标名出处 <编程思想之多线程与多进程(1)——以 ...
随机推荐
- POJ 1218
题目描述看着就乐了,死板得只按着题意来写了ps: tequi是escape的方言版.. #include <iostream> using namespace std; int main( ...
- 用dx实现半透遮挡效果
四种技术方案: 1.两次绘制role实现半透遮挡2.背景中已经包含building, 则额外绘制一次半透的building即可实现半透遮挡3.利用building的遮罩实现半透遮挡, 利用rtt技术4 ...
- linux笔记:RPM软件包管理-源码包管理
源码包和rpm包的区别: 源码包安装过程: 编译安装前准备(执行./configure --prefix=路径 来配置软件的安装位置,以及做其他的配置和检查): 编译和安装(直接在目录下执行make和 ...
- C# Form内存回收
namespace WebBrowserMemoryTest { public partial class Form1 : Form { private int _Pages; public Form ...
- JavaWeb基础:Servlet
Servlet 基本概念 Servlet是Sun公司提出的一种用于开发动态Web资源的技术规范: Servlet是一个Java接口, 用户想要开发自定义的Servlet可以通过以下步骤: 编写实现Se ...
- hdu----(1402)A * B Problem Plus(FFT模板)
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- android:ems
<EditText android:id="@+id/qq_number" android:layout_width="wrap_content" and ...
- java配置数据库连接池的方法步骤
java配置数据库连接池的方法步骤 java配置数据库连接池的方法步骤,需要的朋友可以参考一下 先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vecto ...
- Subgraph Search Over Large Graph Database
Subgraph Search Over Large Graph Database Problem Definition Given a graph database and a query grap ...
- Javascript面向对象编程:构造函数的继承
今天要介绍的是,对象之间的"继承"的五种方法. 比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = & ...