构造方法/构造器
需求
我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如
果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做? 这时就可以使用构造器。
基本语法
[修饰符] 方法名(形参列表){
方法体;
}
说明
-
构造器的修饰符可以默认, 也可以是 public protected private
-
构造器没有返回值
-
方法名 和类名字必须一样
-
参数列表 和 成员方法一样的规则
-
构造器的调用, 由系统完成
基本介绍
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。
它有几个特点:
-
方法名和类名相同
-
没有返回值
-
在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。
快速入门
//在创建人类对象时,就直接指定这个对象的年龄和姓名 public class Constuctor01 { public static void main(String[] args){ //当我们new一个对象时,直接通过构造器指定名字和年龄 Person p = new Person("smith" , 80); System.out.println("p对象的name=" + p.name); System.out.println("p对象的age=" + p.age); } } class Person{ String name; int age; //构造器没有返回值,也不能写void public Person(String pName , int pAge){ //构造器的方法名和类名相同 System.out.println("构造器被调用---完成对象属性的初始化"); name = pName; age = pAge; } }
注意事项和使用细节
//在创建人类对象时,就直接指定这个对象的年龄和姓名 public class Constuctor01 { public static void main(String[] args){ //当我们new一个对象时,直接通过构造器指定名字和年龄 Person p = new Person("smith" , 80);//第一个构造器 Person p2 = new Person("tom" ); //第二个构造器 System.out.println("p对象的name=" + p.name + "p对象的age=" + p.age); System.out.println("p2对象的age=" + p2.name ); } } class Person{ //构造器的重载(构造器本身也属于方法) String name; int age; public Person(String pName , int pAge){ name = pName; age = pAge; } public Person(String pName ) { name = pName; } }
练习
/* 第一个无参构造器:利用构造器设置所有人的 age 属性初始值都为 18 第二个带 pName 和 pAge 两个参数的构造器:使得每次创建 Person 对象的同时初始化对象的 age 属性值和 name 属性值。 分别使用不同的构造器,创建对象 */ public class Constuctor01 { public static void main(String[] args){ Person p1 = new Person(); System.out.println("无参构造器:" + p1.name + " "+ p1.age); Person p2 = new Person("tom" , 55); System.out.println("两个参数的构造器:" + p2.name + " "+ p2.age); } } class Person{ int age ; String name; public Person(){ age = 18; } public Person(String pName , int pAge){ name = pName; age = pAge; } }