关于java的构造方法!!!
这是书上的一段代码,我知道构造方法是用来初始化的,但是为什么不直接在成员变量里让Stringname="未登记"呢?在实际中构造方法到底有怎样的用处??publiccla...
这是书上的一段代码,我知道构造方法是用来初始化的,但是为什么不直接在成员变量里让
String name="未登记"呢? 在实际中构造方法到底有怎样的用处??
public class Student {
public String name;
public String sex;
public int age;
public Student(){
name = "未登记";
sex = "未登记";
}
public Student(String name){
this.name = name;
}
public Student(String name,String sex,int age){
this(name);
this.sex = sex;
this.age = age;
}
public void sayMylnfo(){
System.out.println(name);
System.out.println(sex);
System.out.println(age);
}
public static void main(String[] args){
Student student1 = new Student();
Student student2 = new Student();
student1.sayMylnfo();
student2.sayMylnfo();
} 展开
String name="未登记"呢? 在实际中构造方法到底有怎样的用处??
public class Student {
public String name;
public String sex;
public int age;
public Student(){
name = "未登记";
sex = "未登记";
}
public Student(String name){
this.name = name;
}
public Student(String name,String sex,int age){
this(name);
this.sex = sex;
this.age = age;
}
public void sayMylnfo(){
System.out.println(name);
System.out.println(sex);
System.out.println(age);
}
public static void main(String[] args){
Student student1 = new Student();
Student student2 = new Student();
student1.sayMylnfo();
student2.sayMylnfo();
} 展开
展开全部
构造方法用途可是大大的,首先,你肯定知道,如果我们没有自己创建构造方法,java会默认为我们提供一个无参的构造方法,这也就是为什么我们平时在使用这个类的时候,可以这样:Student stu = new Student();可是在有的情况下,我们需要在new一个类的时候,为其提供一些必要的信息,比如说我想要new 一个student,并且name是student类必须的一个字段,那么就可以构造一个有参的构造方法,如果你在程序中new 的时候,不小心忘记传name了,此时就会报错,给予错误提醒。其实,理解的再简单一点,我觉得构造方法就是方法的重载啦~
来自:求助得到的回答
展开全部
构造方法是必然会被调用的,所以用来初始化一些必要的值什么的。即使你没有显示的写出构造方法,编译器默认会给你加个空构造方法。而构造方法可以被重载,就是可以有多个构造方法,如此,你可以有多种初始化方式,然后达到根据传入的参数不同,而初始化出来不同的实例。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-14
展开全部
在java 中 有 多态的特征、 构造方法就属于多态、因为 这个类里有个名字和类名一样的方法 而 参数不一样 、当new 这个类的时候 比如: new textname(); 后面的() 就是调用构造方法 、 这个代码只是 说 在new 这个类的时候 在给 name 赋值 这都不重要 按你的方法做能出来就好了 至于代码的 优化 等你 接触了更多的 java 你就知道你的代码 那块 可以更好的 优化 在做调整、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个也实际的使用场景有关系,没新增一个学生的时候,都应该是”未登记“的,这样就相当于给name和sex初始化了值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看需求,初始一个空参数的Student时,向Student写入name和sex未登记的学生对象。。权限是public写在成员里也可以,当小于public时就不行了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询