在java里,能不能在方法体里调用本类的构造函数创建对象?

我成功了的调用。但是我不知道我想的对不对。我先随便写一段代码吧publicclassCust{privateStringname;privateintnum;public... 我成功了的调用。但是我不知道我想的对不对。
我先随便写一段代码吧
public class Cust {

private String name;
private int num;
public Cust(){
this.name="get";
this.num=12;

}

public void setName(String theName)
{
name=theName+"good";

}

public String getName()
{
return (name);

}
public void println()
{
Cust student=new Cust();
student.setName("my ");

System.out.println(student);

}
public String toString()
{
return (name+" "+num);

}
很简单的一段代码。
然后写main函数
public class CustDemo {

/**
* @param args
*/
public static void main(String[] args) {

Cust stu1=new Cust();
stu1.println();

}

我是这么想的。
定义一个构造函数那是无可厚非的。
然后在本类的方法当中 创建了一个对象的实例。
我在这一步产生了怀疑。
这个对象实例应该具有这个类的所有变量和方法。
可这个对象实例却又在一个方法里头。
这是怎么回事?
展开
 我来答
匿名用户
2013-08-17
展开全部
这样写当然没有毛病,但会让人觉得别扭。
这样写涉及了方法的重写和隐式调用,如果是很长的代码,出现很多这样的写法是恐怖的,是你的代码可读性很差。
你可以把这个类想象成 母婴 他们来自一个类就是人。
首先你必须清楚 你上面的代码中出现的是完全独立的两个Cust。他们只是有相同的属性和方法。
仅仅是一个Cust在另一个的“肚子里”。
你在main方法中实例化的是一个母类,同时你调用了让母类的println方法时。使母类产生了新的实体Cust,母类中println实际实现过程是:
Cust student=new Cust();//实例化婴儿 婴儿name=get num=12
student.setName("my ");//给婴儿起名(实际调用的婴儿实体的setName方法)婴儿name=my good
System.out.println(student);
//这是两步:
//1。调用婴儿实体的toString() 返回婴儿信息 my good12
//2。System.out.println输出婴儿全部信息。

不知道这样解释有没有让LZ茅塞顿开。
仅供参考
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式