类的成员之一:成员变量 (field)
类的成员之二:方法 (method)
我们 new 完对象时,所有成员变量都是默认值,如果我们需要赋别的值,需要挨个为它们再赋值,太麻 烦了。我们能不能在new 对象时,直接为当前对象的某个或所有成员变量直接赋值呢?
可以, Java 给我们提供了 构造器( Constructor) ,也称为 构造方法 。
构造器的作用
new 对象,并在 new 对象的时候为实例变量赋值。
举例: Person p = new Person(“Peter”,15) ;
解释:如同我们规定每个 “ 人 ” 一出生就必须先洗澡,我们就可以在 “ 人 ” 的构造器中加入完成 “ 洗澡 ” 的程序代码,于是每个“ 人 ” 一出生就会自动完成 “ 洗澡 ” ,程序就不必再在每个人刚出生时一个一个地告诉他们要“ 洗澡 ” 了。
构造器的语法格式
[ 修饰符 ] class 类名 {[ 修饰符 ] 构造器名 (){// 实例初始化代码}[ 修饰符 ] 构造器名 ( 参数列表 ){// 实例初始化代码}}
说明:
1. 构造器名必须与它所在的类名必须相同。
2. 它没有返回值,所以不需要返回值类型,也不需要 void 。
3. 构造器的修饰符只能是权限修饰符,不能被其他任何修饰。比如,不能被 static 、 final 、
synchronized 、 abstract 、 native 修饰,不能有 return 语句返回值。
代码如下:
public class Student {private String name ;private int age ;// 无参构造public Student () {}// 有参构造public Student ( String n , int a ) {name = n ;age = a ;}public String getName () {return name ;}public void setName ( String n ) {name = n ;}public int getAge () {return age ;}public void setAge ( int a ) {age = a ;}public String getInfo (){return " 姓名: " + name + " ,年龄: " + age ;}}public class TestStudent {public static void main ( String [] args ) {// 调用无参构造创建学生对象Student s1 = new Student ();// 调用有参构造创建学生对象Student s2 = new Student ( " 张三 " , 23 );System . out . println ( s1 . getInfo ());System . out . println ( s2 . getInfo ());}}
10.3 使用说明
1. 当我们没有显式的声明类中的构造器时,系统会默认提供一个无参的构造器并且该构造器的修饰
符默认与类的修饰符相同
我把构造器注释了 然后反编译一下 就可以看到构造器
2. 当我们显式的定义类的构造器以后,系统就不再提供默认的无参的构造器了。
3. 在类中,至少会存在一个构造器。
4. 构造器是可以重载的。
总结
类的成员之三:构造器(constructor),构造方法1. 构造器的理解constructor :n. 建设者、建造者 construct:v. 建设、建造、创造 construction: n. 建设、建造 CCB2. 构造器的作用 作用1:搭配new关键字,创建类的对象 作用2:在创建对象的同时,可以给对象的相关属性赋值3. 构造器的使用说明 > 构造器声明的格式:权限修饰符 类名(形参列表){} > 创建类以后,在没有显示提供任何构造器的情况下,系统会默认提供一个空参的构造器,且构造器的权限与类声明的权限相同。 > 一旦类中显示声明了构造器,则系统不再提供默认的空参的构造器。 > 一个类中可以声明多个构造器,彼此之间构成重载。