与普通方法相比,构造方法也可以重载,在一个类中可以定义多种构造方法,只要构造的方法的参数类型和参数个数不同即可。在创建对象时,可以通过调用不同的构造方法为不同的属性赋值。
案例一:
public class text
{
public static void main(String []args)
{
Person p1 = new Person("lijia",18);
Person p2 = new Person("zqw");
p1.speak();
p2.speak();
}
class Person
{
String name;
int age;
public Person(String pname,int page)
{
name = pname;
age = page;
}
public Person(String pname)
{
name = pname;
}
public void speak()
{
System.out.println("大家好,我叫:"+name+"我今年"+age+"岁!");
}
}
}
运行结果如下:
案例一解释:
案例二:
1、使用类的封装技术,以及构造方法重载,this关键字等完成以下类的定义:
设计一个用于成绩管理的学生类:
学生有:学号,姓名,课程名,成绩等属性;
该类能:查看成绩;修改成绩;显示学生的信息等;
通过给定的学号,姓名,课程名,成绩可以创建对象;
//3.25 11:26 by lijia
import java.util.Scanner;
public class lijia1
{
public static void main(String []args)
{
Scanner sc = new Scanner(System.in);
System.out.println("input 学号:");
String xuehao = sc.next();
System.out.println("input name:");
String name = sc.next();
System.out.println("input 课程名:");
String kcname = sc.next();
System.out.println("input 成绩:");
int cj = sc.nextInt();
Person p1 = new Person(xuehao,name);
Person p2 = new Person(kcname);
Person p3 = new Person(cj);
p1.introduce();
p2.tell();
p3.see();
}
}
class Person
{
private String xuehao;
private String name;
private String kcname;
private int cj;
public Person(String pxuehao,String pname)
{
xuehao = pxuehao;
name = pname;
}
public Person(String pkcname)
{
kcname = pkcname;
}
public Person(int pcj)
{
cj = pcj;
}
public void introduce()
{
System.out.println("学号:"+this.xuehao+"名字:"+this.name);
}
public void tell()
{
System.out.println("课程名字:"+this.kcname);
}
public void see()
{
System.out.println("成绩:"+this.cj);
}
}
运行结果如下: