关于java构造方法的使用问题! 20

构造方法代码:publicclassDog{privateStringName;privateStringColor;privateintAge;publicDog(){... 构造方法代码:
public class Dog {
private String Name;
private String Color;
private int Age;

public Dog() {
}
public Dog(String name, String color, int age) {
this.setName(name);
this.setColor(color);
this.setAge(age);
}

public static void main(String[] args) {
Dog ram=new Dog("Ram","white",2);
ram.show();
Dog Nim=new Dog("nim","black",3);
Nim.show();
}
private void show() {
System.out.println("name:"+this.getName()+",color="+this.getColor()+",age="+this.getAge());
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getColor() {
return Color;
}
public void setColor(String color) {
Color = color;
}
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
}

普通代码:
class d
{
public static void main(String[] args)
{
String name="Ram";
String color="white";
int age=2;
String name1="nim";
String color1="black";
int age1=3;
System.out.println("name="+name);
System.out.println("color="+color);
System.out.println("age="+age);
System.out.println("name="+name1);
System.out.println("color="+color1);
System.out.println("age="+age1);
}
}

听说构造方法能减少代码量,但上面这2个程序明显下面代码量大大减少,而且相当简单啊,为什么要用到构造方法呢?2个程序输出的答案都一样啊。
展开
 我来答
清心又谦恭丶布丁9
2011-09-20 · TA获得超过6605个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1878万
展开全部
呵呵。楼主单从一个事例来看,确定代码多了。
我们说减少代码量,也指的是代码的可重用性。

我现在封装好了属性的构造方法。然后我调用一次用这些代码
public static void main(String[] args) {
Dog ram=new Dog("Ram","white",2);
ram.show();
}
对比普通代码:
class d
{
public static void main(String[] args)
{
String name="Ram";
String color="white";
int age=2;
String name1="nim";
String color1="black";
int age1=3;
System.out.println("name="+name);
System.out.println("color="+color);
System.out.println("age="+age);
System.out.println("name="+name1);
System.out.println("color="+color1);
System.out.println("age="+age1);
}

楼主说的是单从这个程序来看,代码反而多了。
可是楼主注意。
如果我现在要用养十只狗狗呢????????你算一算,哪个代码量会少。
在程序中,一般是会用到多次的。。
单对一次来说。什么继承呀,接口呀,方法呀,构造函数呀。肯定是会多出代码的。
我们说减少代码一是指代码可利用,二是指在大量调用的时候减少代码

另外可以保证信息的合法性
比如我现在要求,每new一只狗狗必须有名字和年龄。
那我写个构造函数
public Dog(String name,String age){
}
如果你在创建对象的时候少了参数(由于疏忽,这种事很经常的,特别是参数一多),他会报错,减少人为的因素
gxy0451
2011-09-20 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:124万
展开全部
首先,面向对象编程需要有自己的模式。你把这些变量都写在了main函数中,如果外部对象想要调用怎么办?而且这些变量都应该是private的,不可对外暴露,所以需要提供对外的接口也就是set,get方法。关于构造函数,有了构造函数可以让别人以你所需要的标准来进行new这个对象,否则就会使用系统默认的构造函数。如你第一个例子所示,如果没有构造函数,只需要Dog dog = new Dog()即可实例化一个对象,而有了构造函数就必须Dog dog = new Dog(1,2,3)这样来实例化,保证了你程序的健壮性。
追问
如果外部对象想要调用怎么办,这话什么意思?
追答
外部对象会new Dog,那么如果访问内部属性该怎么访问呢?当然要通过set,get方法了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式