java this对象_Java的“this”与对象

是一种全新的面向对象的程序设计语言,它提供了丰富的类()、接口()以及相应的方法(),使用这些类或接口,用户可以定义自己的类或子类,并以这些类为模板创建对象()。关键字“”与“对象”密切相关,并使程序设计变得规范、简单、灵活。但在使用过程中,在不同场合其含义不完全相同,使用不当还会出现错误,本文对“”的几种主要用法和出现的问题进行了分析。“”的不同用法及其含义区分类变量与局部变量当定义一个类及其方法(包括构造函数)时,为了区分同名的类变量和方法中的局部变量,在类变量名前使用关键字“”,这是最常见的用法。例如:;;;();赋值号前表示类变量;(,);;这种用法不易出错,当然,如果类变量与局部变量使用不同的名字,则可避免使用“”。调用本类中的其它构造函数当一个类中有重载的构造函数时,在一个构造函数中可使用“()”来调用同一类中不同的构造函数。此时“()”表示调用同名的其它构造函数中参数匹配的一个构造函数。当一个类中有几个构造函数来满足几个不同类型的变量的初始化要求时,就可能从一个构造函数中调用另一个构造函数。例如:;;()(());表示调用()();();尤其当一个构造函数做了所有的构造函数都需要做的许多初始化工作时,使用“()”就非常有用,它有助于减少多余的代码。例如:;;;;;;;;(,)();表示调用();();;;;要注意的是:当使用“()”(或使用“()”)调用本类(或超类)的构造函数时,必须把该调用语句作为构造函数的第一条语句,并且保证“()”或“()”括号中的参数个数和类型与本类(或超类)其它某个构造函数完全匹配,否则编译时将提示出错。创建一个线程对象()当声明一个实现接口而且是扩展类的一个子类()后,在它的()方法中创建一个线程对象时要求用一个可实现接口的对象(正是它实现了接口中的抽象方法())作为参数传递给构造函数(),此时用“”表示实现()方法的当前对象(即对象),利用“”关键字,创建了一个对应于本的执行线程,该线程启动后执行的就是作为参数传递给其构造函数的对象里的代码,即通过调用线程对象的()方法来自动调用()函数。例如:其它语句;其它类变量()()()();表示实现接口的对象();()其它语句();()要注意的是:()括号中为空时,虽然编译源程序时没有发现错误,但不执行()。本例必须以“”作为参数创建线程对象(),也不能用“”来代替“”。作为图像观察器接口的对象在调用(,,,)或其它同名的()方法来显示图像时要求其最后一个参数总是为对象,由于在调用()方法之前,首先调用()把某个图像文件装入内存并赋给一个图像变量,那些被读入的图像数据称为可浏览(观察)事件,并可指定某个对象作为图像观察器()来浏览(观察)这些图像。的组件类(如每个按钮、框架、画布、面板、标签等)实现了图像观察器接口,并能登记读入图像的有关信息。由于小应用程序()属于面板()类的子类,因此也是图像观察器,所以通常把“”作为()方法中的最后一个参数,使得其它的操作就能默认地正常进行下去,并随着图像的逐步装入内存,越来越多的图像被画到屏幕上。例如:;;;()((),);()(,,,);要注意的是:如果在()方法中缺少图像观察器对象这一项参数而方法不匹配,编译时将出现错误提示“找不到匹配的()方法”,如果把在本例中的观察器对象这一项写成“”,即使编译不出错,运行时也不会显示图像。把最后一个参数写成“”即可显示图像。例外:)在双缓冲图像处理时,若先把图像画到内存中脱屏图形环境上,再用()把图像显示在屏幕上时“”可改为“”;)若()是由线程对象(())的()方法中的()调

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值