
在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();
}
我是这么想的。
定义一个构造函数那是无可厚非的。
然后在本类的方法当中 创建了一个对象的实例。
我在这一步产生了怀疑。
这个对象实例应该具有这个类的所有变量和方法。
可这个对象实例却又在一个方法里头。
这是怎么回事? 展开
我先随便写一段代码吧
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茅塞顿开。
仅供参考
这样写涉及了方法的重写和隐式调用,如果是很长的代码,出现很多这样的写法是恐怖的,是你的代码可读性很差。
你可以把这个类想象成 母婴 他们来自一个类就是人。
首先你必须清楚 你上面的代码中出现的是完全独立的两个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茅塞顿开。
仅供参考
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询