两个简单问题(10分)

  • 主题发起人 主题发起人 yb_1014
  • 开始时间 开始时间
Y

yb_1014

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟刚学,有两个简单的问题,请各位高手指教
1
class MyRectangle
{
int Width;
int Height;
MyRectangle(int width,int height)
{
Width=width;
Height=height;
//这样写有什么好处,有这个必要吗? 我能不能写成 return(width*height)
}
int getArea()
{
return(Width*Height);
}
}
public class TestMy{
public static void main(String[] args){
MyRectangle tec1=new MyRectangle(40,50);
System.out.println("矩形的面积="+tec1.getArea());
System.out.println(tec1);
//输出对象在内存中的地址。
}
}
2
class Email
{
protected String UserName;
protected String HostName;
Email(){}
Email(String s)
{
int j=s.indexOf('@');
if(j!=-1)
{
UserName=s.substring(0,j);
HostName=s.substring(j+1);
}
}
String getUserName()
{
return UserName;
}
String getHostName()
{
return HostName;
}
public String toString()
{
String s=new String();
if(UserName!=null&&HostName!=null)
s=UserName+"@"+HostName;
return s;
}
}
public class TestEmail{
public static void main(String[] args){
Email e=new Email("hello@sohu.com");
System.out.println("Email:"+e.toString());
System.out.println(e);//为什么这里输出的是hello@sohu.com,这里应该是类的实例,输出的怎么不是地址.
System.out.println("UserName:"+e.getUserName());
System.out.println("HostName:"+e.getHostName());
}
}
 
1.这是类的封装,将属性隐藏起来,你注释的地方是设置属性,不是返回面积。这样的目的是,若类要进行修改时,如修改长宽,你要相应地做一些处理,象在窗口上重绘之类的,那你就可以在这个方法里统一处理,并将长宽的内部变量透明处理,这样可以避免使用者直接修改了长宽,而你却不知道去更新显示。
2。看一下这个代码吧,它应当是调用了默认的方法tostring
public String toString()
{
String s=new String();
if(UserName!=null&&HostName!=null)
s=UserName+"@"+HostName;
return s;
}

//注:我没用过java,看到了就顺手回了,不保证完全正确[:D]
 
这是我的想法:)
1. 这是给成员变量赋值. 不能, 构造函数没有返回值. 你使用Rectangle的目的不是仅仅获取面积而已吧.
MyRectangle(int width,int height)
{
Width=width;
Height=height;
//这样写有什么好处,有这个必要吗? 我能不能写成 return(width*height)
}
2. System.out.println(Object) 据我使用的结果推测, 在 Object 有 toString() 方法的时候(例如从java.lang.Object继承的对象), 相当于 System.out.println(Object);
否则输出 Object 的地址(例如数组).
 
1、是构造函数,没有返回值。
2、toString() 方法没有复写的时候,调用的是父类的,复写了,就调用自己写的。
 

Similar threads

I
回复
0
查看
658
import
I
I
回复
0
查看
719
import
I
I
回复
0
查看
632
import
I
I
回复
0
查看
687
import
I
后退
顶部