前言:
如今朋友们对“java中构造器”可能比较珍视,姐妹们都需要知道一些“java中构造器”的相关文章。那么小编也在网摘上收集了一些对于“java中构造器””的相关文章,希望大家能喜欢,你们一起来了解一下吧!什么是构造器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之数据格式化
javaweb内容js\java中json的使用
java技术事务的传播行为
标签: #java中构造器