CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

请各位给我指点一下。

楼主dcq(悠悠)2003-06-02 23:51:55 在 Java / J2SE / 基础类 提问

我有如下三个java程序,现有几个问题请教:  
   
  //MyPoint.java  
  public   class   MyPoint  
  {  
                    private   int   x,y;  
  public   MyPoint(int   x,int   y)  
  {  
  this.x   =   x;  
  this.y   =   y;  
  }  
  public   MyPoint()  
  {  
  this(0,0);  
  }  
   
  public   String   toString()  
  {  
  return   "("   +   x   +","   +   y   +   ")";  
  }  
  }  
   
   
  //MyCircle.java  
  public   class   MyCircle  
  {  
  private   static   int   counter   =   1;  
  private   MyPoint   p;  
  private   int   radius;  
  private   int   index;  
   
  public   MyCircle(MyPoint   p,int   radius)  
  {  
  this.p   =   p;  
  this.radius   =   radius;  
  index   =   counter++;  
  }  
  public   MyCircle(MyPoint   p)  
  {  
  this(p,10);  //这儿为问题一  
  }  
  public   void   centerAt()  
  {  
  System.out.println("Center   at:   "   +   p); //这儿为问题二  
  }  
  public   void   printArea()  
  {  
  System.out.println("Circle   "   +   index   +   "   with   area   "   +   Math.PI*radius*radius);  
  }  
  }  
   
  //CircleDemo.java  
  public   class   CircleDemo  
  {  
  public   static   void   main(String   args[])  
  {  
  MyPoint   p1   =   new   MyPoint(10,10);  
  MyPoint   p2   =   new   MyPoint();  
  MyCircle   c1   =   new   MyCircle(p1,50);  
  MyCircle   c2   =   new   MyCircle(p2);  
   
  c1.printArea();  
  c1.centerAt();  
  c2.printArea();  
  c2.centerAt();  
  }  
  }  
   
  运行CircleDemo   程序的输出结果为:  
  Circle   1   with   area   7853.981633974483  
  Center   at   :(10,10)  
  Circle   2   with   area   314.1592653589793  
  Center   at   :(0,0)  
   
  问题一:this(p,10)这句话应该如何理解?  
  问题二:为什么不调用p对象的toString()方法来生成字符串而直接使用p?  
   
  问题点数:20、回复次数:5Top

1 楼teaky2002(种田硬手)回复于 2003-06-02 23:58:43 得分 10

问题一:调用另一个构造函数。  
   
   
  问题二:在对象跟字符串做连接的时候,系统会默认调用对象的toString()函数,所以你不用明确调用toString();  
   
  Top

2 楼mymoto(忽忽)回复于 2003-06-03 00:04:23 得分 10

问题一:  
  this(p,10)就是用于这个public   MyCircle(MyPoint   p)构造函数中,说明在不给顶radius的情况下,那么就调用public   MyCircle(MyPoint   p,int   radius)构造函数,并且把radius给一个固定数值为10,懂了吗?  
  问题二:  
  "Center   at:   "   +   p,当object和string像加的时候,object会自动被转化为string类型相加得到结果,也就是自动调用object的toString方法(记忆中的,怕误倒你,建议你查一下书中的具体说法)  
   
   
  Top

3 楼dcq(悠悠)回复于 2003-06-03 00:10:33 得分 0

teaky2002:谢谢你的回复!  
  但我还有一点不明白,请指教,问题一中,为什么说在调用另外一个构造函数呢?能给我分析具体一下吗,小弟对this在这儿的用法不甚了解?  
  问题二中“在对象跟字符串连接时,系统会默认调用对象的toString()函数”这是规律吗?Top

4 楼toto1980(^涛^)回复于 2003-06-03 00:16:43 得分 0

java编程思想中有详细介绍,讲得很清楚建议你看看.Top

5 楼dcq(悠悠)回复于 2003-06-03 08:47:02 得分 0

谢谢各位,我明白了.Top

相关问题

  • 各位高手请指点一下
  • 各位高手请指点一下??????
  • 请各位前辈指点一下!!!
  • 迷茫中,请各位指点一下
  • 请各位帮忙,指点一下。
  • 请各位高人给指点一下!
  • 各位指点一下
  • 请指点一下小菜鸟吧..DataWindow问题.各位请进....,
  • 请指点一下
  • 各位高手请指点我一下,如何学C++

关键词

  • 函数
  • mycircle
  • mypoint
  • 调用
  • radius
  • 构造函数
  • 字符串
  • 对象
  • 问题
  • tostring

得分解答快速导航

  • 帖主:dcq
  • teaky2002
  • mymoto

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo