构造方法
- 创建对象中new 后面的首字母大写单词加括号是一种特殊的方法——构造方法
- 构造方法不写void
- 括号中什么也没有为无参构造方法(无返回值类型),每个类都有个默认的无参构造方法可以直接调用。
- 但是如果自定义了带参构造方方法,系统就不在默认提供无参构造方法了。如果要使用,必须显示声明。
- 构造方法和类名规则相同,遵循帕斯卡命名规则,每个单词首字母大写。
- this调用构造方法必须在同一行。
//测试修改学生信息类
public class TestModifyStu {
public static void main(String[] args) {
ModifyScore m=new ModifyScore();
//定义了一个学生对象数组
/*Student s1=new Student();
s1.name="as";
s1.score=23;*/
Student s1=new Student("as",23);
/*Student s2=new Student();
s2.name="ad";
s2.score=25;*/
Student s2=new Student("ad",25);
/*Student s3=new Student();
s3.name="fs";
s3.score=13;*/
Student s3=new Student("fs",13);
Student[] stus=new Student[3];
stus[0]=s1;
stus[1]=s2;
stus[2]=s3;
//显示学生信息、修改学生成绩
m.showStus(stus);
m.modifyStuScore(stus);
m.showStus(stus);
}
}
//学生类
public class Student {
//属性: 姓名 年龄 成绩
String name;
int age;
int score;
//系统默认提供这个无参构造方法
public Student(){
}
//带参构造方法 this:指代当前对象
public Student(String name,int score){
this.name = name;
this.score = score;
}
public Student(String name,int score,int age){
/*this.name=name;
this.score=score;
this.age=age;*/
this(name,score);//调用带参构造方法Student(String name,int score),
this.age=age;
}
/*//可以理解为这种写法
public Student(String n,int s){
name=n;
score=s;
}*/
//方法:输出个人信息
public void showInfo(){
System.out.println(name+"的成绩是:"+score);
}
public void method1(){
showInfo();//等同于this.showInfo();
}
}