java培训SE基础之构造器

什么是构造器

1. 什么是初始化

    对象在刚创建时进行的工作就称为初始化, 初始化的主要工作是针对对象的属性的.

2.构造器概念

   当对象创建时, 希望对象的属性值被正确赋值, 此时就需要用到了构造器, 构造器也称为构造方法, 本质上构造器就是一个方法, 是一个特殊的方法.

3. 如何定义构造器

  构造器(构造方法)的定义

  修饰符 类名(参数类型1 形参1, 参数类型2 形参2….) {

        代码块;

  }

public class Teacher {

       private String name;

       private int age = 30;

       private String gender = “女”;      

       public Teacher() { // 无参构造器

              name = “张三”;

              age = 35;

              gender = “男”;

       }     

       public void setName(String name) {

              this.name = name;

       }      

       public String getName() {

              return name;

       }      

       public void setAge(int age) {

              this.age = age;

       }  

       public int getAge() {

              return age;

       }      

       public void setGender(String gender) {

              this.gender = gender;

       }     

       public String getGender() {

              return gender;

       }     

       public String say() {

              return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender;

       }

}

注意 : 类中如果没有提供任何的构造器, 编译器也会自动添加一个缺省的构造器

缺省的构造器就是 修饰符和类一致, 无参, 并且方法体中没有代码.

 构造器的特点

特点1

构造器没有返回值, 也不可以声明void

特点2

构造器名称必须和类名一致

特点3

构造器不可以被final, static, abstract等修饰

特点4

构造器不像普通方法可以随意调用, 只能在创建对象时调用一次

构造器调用

1.如何调用构造器

使用new关键字在创建对象时就会自动调用了构造器

public class TeacherTest {    

       public static void main(String[] args) {

              Teacher t = new Teacher(); // 调用无参构造方法

              System.out.println(t.say()); // 输出”姓名:张三,年龄:35,性别:男”

       }

}

 构造器重载

1.什么是构造器重载

当一个类中有多个构造器, 并且参数不同就形成构造器重载

构造器重载的目的是可以使用多种方式创建不同的对象

public class Teacher {    

       private String name;

       private int age = 30;

       private String gender = “女”;   

       public Teacher() { // 无参构造器

              name = “佟刚”;

              age = 35;

              gender = “女”;

       }

       // 有参构造器

       public Teacher(String n, int a) {

              name = n;

              age = a;

              gender = “女”;

       }

       // 有参构造器

       public Teacher(String n, int a, String g) {

              name = n;

              age = a;

              gender = g;

       }    

       public String say() {

              return “姓名:” + name + “,年龄:” + age + “,性别:” + gender;

       }

}

 

public class TeacherTest {

       public static void main(String[] args) {

              Teacher t1 = new Teacher(); // 调用无参构造方法

              System.out.println(t1.say());

Teacher t2 = new Teacher(“李四”, 40); // 调用有参构造方法

              System.out.println(t2.say());

Teacher t3 = new Teacher(“王五”, 50, “男”); // 调用有参构造方法

              System.out.println(t3.say());

       }

}

2. this()调用

  在无参构造器中, 给对象的3个属性分别完成赋值, 而这个操作可以通过调用另外一个构造器来完成,调用的语法this(实参列表);

  注意 :

this(…) 调用必须放在构造器的第一行!

       this(…) 调用时,必须保证有一个构造器是没有this(…)的, 否则会形成构造器递归调用.

public class Teacher {    

       private String name;

       private int age = 30;

       private String gender = “女”;    

       public Teacher() { // 无参构造器

              // 注释不算行

              this(“张三”, 35, “男”); // 通过调用第3个构造器完成属性赋值

       }   

       // 有参构造器

       public Teacher(String n, int a) {

              name = n;

              age = a;

              gender = “女”;

       } 

       public Teacher(String n, int a, String g) {

              name = n;

              age = a;

              gender = g;

       }   

       public String say() {

              return “姓名:” + name + “,年龄:” + age + “,性别:” + gender;

       }

}

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训训课程视频供广大学员下载学习


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)