public class Student2 {
private String name;
private int age;
private String sex;
private String subject;public Student2(String name,int age){
sex = "男";
subject = "C#";
}
public Student2(String name,int age,String sex,String subject){}
public void print(){
System.out.println("名字是:"+name+"年龄是:"+age+"性别是:"+sex+"专业是:"+ subject);
}public class Student1Test {
public static void main(String[]agrs){
Student2 sd = new Student2("小明",20);
Student2 sd1 = new Student2("小丽",22,"女","java");
sd.print();
sd1.print();
}
}
这代码对么? 为什么调用不出来?不是括号给值?
private String name;
private int age;
private String sex;
private String subject;public Student2(String name,int age){
sex = "男";
subject = "C#";
}
public Student2(String name,int age,String sex,String subject){}
public void print(){
System.out.println("名字是:"+name+"年龄是:"+age+"性别是:"+sex+"专业是:"+ subject);
}public class Student1Test {
public static void main(String[]agrs){
Student2 sd = new Student2("小明",20);
Student2 sd1 = new Student2("小丽",22,"女","java");
sd.print();
sd1.print();
}
}
这代码对么? 为什么调用不出来?不是括号给值?
this.name = name ;
this.age = age ;
sex = "男";
subject = "C#";
}
public Student2(String name,int age,String sex,String subject){
this.name = name ;
this.age = age ;
this.sex = sex;
this.subject = subject;
}
名字是:null年龄是:0性别是:男专业是:C#
名字是:null年龄是:0性别是:null专业是:null我不太明白楼主的意思,你的意思是希望 把名字直接打印出来 ? 不应该是null ?这个是很基础的问题, 你需要在构造函数里赋值:public Student2(String name,int age){
this.name = name;
this.age=age;
sex = "男";
subject = "C#";
}初始化类对象本身只是调用构造函数,不会做别的事情。你必须要在构造函数中为变量name和age赋值啊。
另外一个构造函数同理。
方式:
source—>
Generate Constructor useing Fields
自动生成
public Student2(String name,int age){
this.name = name ;
this.age = age ;
sex = "男";
subject = "C#";
}
改成
public Student2(String name,int age){
System.out.println(this.name)
SysTEM.out.println(name);
this.age = age ;
sex = "男";
subject = "C#";
}
然后看结果就知道了。