#JAVA#面向对象(构造方法及构造方法的重载)
package 构造方法;
/*
构造方法:
给对象的数据进行初始化
格式:方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
构造方法的注意事项:如果我们没有给出构造方法,系统将自动提供一个无参的构造方法
如果我们给出了构造方法,系统将不再提供默认的无参构造方法
*/
class Student{
private String name;
private int age;
public Student() {
System.out.println("这是构造方法");
}
}
class ConstructDemo {
public static void main(String args[]) {
//创建对象
Student s=new Student();
System.out.println(s); //输出值为地址
}
}
package 构造方法;
/*
给成员变量赋值有两种方式:
A:setXxx()
B:构造方法
注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出,建议永远自己给出无参构造方法
*/
class Student{
private String name;
private int age;
public Student() {
//System.out.println("我给了,你还给不");
System.out.println("这是无参构造方法");
}
//构造方法的重载格式
public Student(String name) {
System.out.println("这是一个带String类型的构造方法");
this.name=name;
}
public Student(int age) {
System.out.println("这是一个带int类型的构造方法");
this.age=age;
}
public Student(String name,int age) {
System.out.println("这是一个带多个参数的构造方法");
this.name=name;
this.age=age;
}
public void show() {
System.out.println(name+"---"+age);
}
}
class ConstructDemo {
public static void main(String args[]) {
//创建对象1
Student s=new Student();
s.show();
System.out.println("---------");
//创建对象2
Student s1=new Student("***");
s1.show();
//创建对象3
Student s2=new Student(33);
s2.show();
Student s3=new Student("***",33);
s3.show();
}
}