这是一篇准备就业的复习博客。。。。。
把以前学过的内容进行一次汇总整合,也方便大家学习,欢迎大家指正。
JAVA面向对象之构造方法
目录
构造方法Constructor
A-构造方法概述和作用:
构造方法是类的一种特殊方法,用来初始化类的一个新的对象。Java 中的每个类都有一个默认的构造方法,它必须具有和类名相同的名称,而且没有返回类型。
B-构造方法格式特点:
1)构造方法名与类名必须完全一致
2)构造方法没有任何返回值类型的声明,包括void也没有
3)构造方法中不能使用return语句
4)构造方法可以重载
5)接口和抽象类不允许被实例化,所以没有构造方法。
6)当一个类中没有定义构造函数时,系统会默认添加一个无参的构造方法。
7)存在自定义构造方法时,都不会再自动添加无参的构造方法。
8)不能被static、final、synchronized、abstract和native修饰。
9)可以被权限修饰符public、protected 和 private 修饰。
由于构造方法用于初始化一个新对象,所以用 static 修饰没有意义;构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义;多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要。
C-构造方法的语法格式如下:
class Student
{
public Student(){} //默认无参构造方法
public Student([paramList]){} //定义构造方法
…
//类主体
}
在一个类中,与类名相同的方法就是构造方法。每个类可以具有多个构造方法,但要求它们各自包含不同的方法参数。
构造方法主要有无参构造方法和有参构造方法两种,示例如下:
class Student {
private String name; //姓名
private int age; //年龄
public Student() { //空参构造
System.out.println("空参的构造");
}
public Student(String name,int age) {
this.name = name;
this.age = age;
System.out.println("有参的构造");
}
public void show() {
System.out.println(name + "..." + age);
}
}
编写主函数测试:
class test_Student {
public static void main(String[] args) {
Student s1 = new Student();
s1.show();
System.out.println("---------------------");
Student s2 = new Student("张三",23);
s2.show();
System.out.println("---------------------");
Student s3 = new Student("李四",24);
s3.show();
}
}
运行结果:
空参的构造
null...0
---------------------
有参的构造
张三...23
---------------------
有参的构造
李四...24
Process finished with exit code 0
- 构造方法的重载
该示例定义了两个构造方法,分别是无参构造方法和有参构造方法。在一个类中定义多个具有不同参数的同名方法,这就是方法的重载。这两个构造方法的名称都与类名相同,均为 Student。在实例化该类时可以调用不同的构造方法进行初始化。
重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表。
D-构造方法注意事项
- 如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
- 如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
- 注意:如果我们想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法。