当前位置:  技术问答>java相关

this指针问题,分大大的给

    来源: 互联网  发布时间:2015-03-17

    本文导语:  兄弟俺有一问题百思不得其解,特此刊登,请众位高手,恳请您帮我缕个思路,分数每天都会加些,保证给分及时: 1 public class MyDate { 2  private int day=1; 3  public MyDate(int day) 4   {this.day=day;} 5  public MyDate(MyDa...

兄弟俺有一问题百思不得其解,特此刊登,请众位高手,恳请您帮我缕个思路,分数每天都会加些,保证给分及时:
1 public class MyDate {
2  private int day=1;
3  public MyDate(int day)
4   {this.day=day;}
5  public MyDate(MyDate date)
6   {this.day=date.day;}
7  public MyDate addDays(int more_days)
8   {MyDate new_date=new MyDate(this);
9    new_date.day=new_date.day+more_days;
10   return new_date;}
11 public void print()
12  {System.out.println("MyDate: "+day);}
13 }
调用时
MyDate birth=new MyDate(1,2,1977);
MyDate the_next_day=birth.addDays(7);
the_next_day.print();
答案是:
8
1、为什么?
2、请问这几个this都是怎么工作的,代表什么?
3、还有程序第8行是怎么触发,什么流程?

|
最重要的是你要知道当前执行的函数(包括构造函数)是哪个对象的!this就是那个对象。

|
程序流程很清楚.关键是理解第8行.
MyDate new_date = new MyDate(this);
这里的this当然是和 new MyDate(1)是同一对象

|
  首先感觉缺一个构造函数MyDate(int day,int month,int year)
1.先构造了一个day是1得MyDate实例,然后day再加7,于是最后是8。
2.这里所有的this都是指实例本身。例如第8行的this就是指把本身这个MyDate实例作为参数传递到另一个MyDate的构造函数。
3.第8行的意思就是构造一个和本身一样的一个MyDate实例,然后把新对象的day加上参数more_days,最后返回更新过的新对象。

|
在这个程序中,如果你把所有的this.都去掉看看,你就明白了。

补充,java里面没有“指针”这个概念。

|
其实JAVA中的引用和this就相当于指针,只不过不能向C++中那样加减罢了。

|
同意charleyshen的意见,程序的确缺少了一个构造函数,由 MyDate birth=new MyDate(1,2,1977);使得birth的private变量day的值为1,第二句 MyDate the_next_day=birth.addDays(7); 调用addDays()方法,所以第八行的this指向birth,所以第八行的作用就好比于new_date.day=birth.day,即new_date.day=1,相加后自然=8


|
gz

|
少一个构造MyDate(int day,int month,int year)
和charleyshen(shenpf)意见相同

|
你是不是想用MyDate birth=new MyDate(1,2,1977)
去调用public MyDate(MyDate date)?
还是怎地?

|
指向当前对象嘛,在birth的方法内,指向Birth
在new_date的方法内,当然指向new_date了

    
 
 

您可能感兴趣的文章:

  • Java中的this指针使用方法分享
  • 新手,关于this指针
  • C#中this指针的用法示例
  • C++中this指针的用法及介绍
  • C++基础之this指针与另一种“多态”
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • java中的“this”问题,请高手指教一二!
  • 初级问题,BangBean2.this是什么意思?其中BangBean2是个类
  • 关于this的简单的问题!!!!!!!!!
  • 简单问题:You don't have permission to access /index.htm on this server?
  • java的初学问题,关于this关键字的问题,谢谢各位了,先来的就先得了:)
  • 关于this的一个简单问题。
  • css 兼容性问题this.style.cursor=''hand''
  • 关于this的小问题,见笑了,
  • 今天小弟开始学JAVA,遇到的第一个问题,关于THIS的。
  • 最近频频发生 段错误,gdb最后显示Previous frame inner to this frame (corrupt stack?)的问题.
  • To masterz():本人愚笨,向你再请教一个问题 在静态上下文中不能引用非静态变量 this
  • 一个很菜的问题,关于JavaBean:小弟第一次用Bean,总提示"sample1BeanId" not a defined bean variable on this page
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • _UIContentControl=new UIContentControl(this);这里this的用法
  • jquery $(this)和this的区别
  • java中this的用法示例(关键字this)
  • 请问:this是什么?
  • this关键字如何使用?
  • 在jsp文件中, this代表的意思???
  • 内容管理系统 THIS
  • 在一个类中this.filled = 12312312;filled= 12312312;有什么区别
  • this 到底怎么用啊!!!救我!
  • how to use 'this' in EJB?
  • 这个THIS是指什么??
  • jQuery this 与$(this)的差别
  • 小弟一直弄不明白this这个关键字。
  • 通过$(this)使用jQuery包装后的方法或属性
  • this 代表什么?
  • 请问:buttonsign定义为一个JButton,那么,buttonsign.addActionListener(this)是什么意思??
  • Semaphore was not declared in this scope
  • java之this关键字用法实例分析
  • php this、self、parent有什么区别?
  • error: ‘CLOCK_VIRTUAL’ was not declared in this scope


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3