A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄兴旺 金牌黑马   /  2013-8-5 22:35  /  1241 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄兴旺 于 2013-8-6 00:11 编辑

求好方法学习...

8 个回复

倒序浏览
在同名的情况下,this代表的是本类对象,静态里不可以出现this,下面的代码,你能分别是打印出100,200,300,我想this你已经掌握了。
private int x=100;
                class Inner
                {
                        int x =200;
                        public void function()
                        {
                                int x=300;
                                System.out.println(x);
                        }
                }
回复 使用道具 举报
在面向对象语言中,它代表了当前对象的一个引用。
1.在构造方法中使用this

2.在实例方法中使用this
实例方法可以操作成员变量。实际上,当成员变量在实例方法中出现时,默认的格式是:

             this.成员变量;
若方法内的局部变量名或方法的参数名与类的成员变量名相同时,使用this区分它们。
类的实例方法可以调用类的其它方法,调用的默认格式是:
    this.方法;
由于这种逻辑关系非常明确,所以常常省略 “this.”。

  
3.类方法中不可以使用this
     this不能出现在类方法中,这是因为,类方法可以通过类名直接调用,这时,可能还没有任何对象诞生。
回复 使用道具 举报
本帖最后由 白堇翎 于 2013-8-5 22:52 编辑

记住一点 this代表本类对象
比如我这一段代码
  1. class demo_1 {
  2.         public String a;
  3.         public String b;

  4.         public demo_1(String a, String b) {
  5.                 this.a = a;
  6.                 this.b = b;
  7.         }
  8. }
复制代码
this就代表了初始化时往里传的值.

然后我写一个demo2,构造函数里不加this,其他与1一样
  1. class demo_2{
  2.         public String a;
  3.         public String b;
  4.         public demo_2(String a, String b) {
  5.                 a = a;
  6.                 b = b;
  7.         }
  8. }
复制代码
再在主类里分别创建对象,往构造函数里面传值,打印他们的成员变量a,这时候差别就体现出来了
  1. public class ThisFlash {
  2.         public static void main(String[] args) {
  3.                 demo_1 d = new demo_1("abc","123");
  4.                 demo_2 d2 = new demo_2("abc","123");
  5.                 System.out.println(d.a);
  6.                 System.out.println(d2.a);
  7.         }
  8. }
复制代码
不知道这样演示的够不够明白...

回复 使用道具 举报
其实,对于this关键字,你只需要记住以下两点
        A :this关键字代表当前类的当前对象的引用

        B
                1 将重名的成员变量和局部变量进行区分
                2 调用构造函数
                        this();  ----调用无参数
                        this(实参列表);-----调用带参数的
                        注意:this必须构造函数中的第一行
回复 使用道具 举报
哪颗最亮的星星 发表于 2013-8-5 22:42
在同名的情况下,this代表的是本类对象,静态里不可以出现this,下面的代码,你能分别是打印出100,200,300, ...

哥们 谢谢
回复 使用道具 举报
wang100753 发表于 2013-8-5 22:47
在面向对象语言中,它代表了当前对象的一个引用。
1.在构造方法中使用this
2.在实例方法中使用this

哥们 谢谢  哈哈头像很逗....
回复 使用道具 举报
白堇翎 发表于 2013-8-5 22:49
记住一点 this代表本类对象
比如我这一段代码this就代表了初始化时往里传的值.

哥们  谢谢
回复 使用道具 举报
逆袭的风 发表于 2013-8-5 23:12
其实,对于this关键字,你只需要记住以下两点
        A :this关键字代表当前类的当前对象的引用

哥们  谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马