构造器(Constructor)

构造器又称为构造方法,那是因为它长的很像方法。但是和方法还有有所区别的。

构造器的作用

​ 要创建一个类的实例对象,必须调用一个对象的构造器,来完成类的实例初始化过程。实例初始化过程就是为实例变量赋初始值的过程。

当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。

注意:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。

构造方法的定义格式

【修饰符】 构造器名(){// 实例初始化代码
}
【修饰符】 构造器名(参数列表){// 实例初始化代码
}

示例代码如下:

public class Student {private String name;private int age;// 无参构造public Student() {} // 有参构造public Student(String n,int a) {name = n;age = a; }//此处其他代码省略
}

构造器的执行时机

在实例化对象时,调用(实例化一次调用一次)

注意事项

  1. 构造器名必须与它所在的类名必须相同。
  2. 它没有返回值,所以不需要返回值类型,甚至不需要void
  3. 如果你不提供构造器,系统会给出无参数构造器,并且该构造器的修饰符默认与类的修饰符相同
  4. 如果你提供了构造器,系统将不再提供无参数构造器,除非你自己定义。
  5. 构造器是可以重载的,既可以定义参数,也可以不定义参数。
  6. 构造器不能被static、final、synchronized、abstract、native修饰

示例

(1)声明一个员工类,

  • 包含属性:编号、姓名、薪资、性别,要求属性私有化,提供get/set方法,
  • 提供无参构造器和有参构造器
  • 提供getInfo()

(2)在测试类的main中分别用无参构造和有参构造创建员工类对象,调用getInfo方法

class Test02_Constructor_Exer{public static void main(String[] args){//分别用无参构造和有参构造创建对象,调用getInfoEmployee e1 = new Employee();System.out.println(e1.getInfo());Employee e2 = new Employee("1001","张三",110000,'男');System.out.println(e2.getInfo());e2.setSalary(120000);System.out.println(e2.getInfo());System.out.println("e1薪资:" + e1.getSalary());}
}
class Employee{private String id;private String name;private double salary;private char gender;//提供无参构造器Employee(){}//提供有参构造器Employee(String i, String n){id = i;name = n;}Employee(String i, String n, double s, char g){id = i;name = n;salary = s;gender = g;}//提供get/set,public void setId(String i){id = i;}public String getId(){return id;}public void setName(String n){name = n;}public String getName(){return name;}public void setSalary(double s){salary = s;}public double getSalary(){return salary;}public void setGender(char g){gender = g;}public char getGender(){return gender;}//提供getInfo()public String getInfo(){return "编号:" + id + ",姓名:" + name + ",薪资:" + salary + ",性别:" +gender;}
}

零基础Java学习之构造器相关推荐

  1. java学习笔记:零基础java学习路线+配套资料+书籍推荐

    公众号菜鸟名企梦2018年,精品文章汇总: 01 我的秋招 我的秋招offer 我的offer选择 秋招全面总结-必读宝典 求职必读 02 零基础学习路线 零基础-java学习路线(上) 零基础-ja ...

  2. 授人予鱼不如授人予渔:零基础java学习路线分享

    一切不以求职找工作为目标的学习路线分享都是耍流氓. 博主是19年7月毕业的应届生:985.A+学科硕士.2018年的秋招收获了:百度.腾讯.头条.美团.猿辅导.度小满.猫眼.流利说等offer.off ...

  3. 零基础——java学习路线(下)

    学习路线分上中下三篇,前两篇已经发布了,本文是学习路线系列的最后一篇.有没有提到的点或学习疑问欢迎评论区留言~ 公众号后台回复"资料"即可获取学习资料大礼包,你想找的基本都有,外加 ...

  4. 零基础Java学习之接口

    介绍 接口的介绍我们从三个方面来说: 从使用上来说是继承的一种扩展,因为java不支持多继承,而有了接口就能够实现多继承的效果. 有时候需要必须从几个类中抽取出一些共同的行为特征,而它们之间又没有继承 ...

  5. 零基础Java学习之继承

    继承 继承的概述 继承的理解 继承的好处 继承的格式 继承的特点一:成员变量 私有化(private) 成员变量不重名 成员变量重名 继承的特点二:成员方法 成员方法不重名 成员方法重名--重写(Ov ...

  6. 零基础Java学习之多态

    介绍 多态是Java的三大特性之一,另外两个分别是:继承和封装(前面博客已经说了继承和封装了,可以看一下).这两个可以说在一定程度了为多态打下了基础. 通过多态,可以实现一个行为具有多种形态,这里的形 ...

  7. 零基础Java学习之初级项目实践(客户信息管理软件-附源码)

    项目涉及知识点 基础的面向对象编程项目. 类和对象(属性.方法及构造器) 类的封装 引用数组 数组的插入.删除和替换 对象的聚集处理 多对象协同工作 需求说明 总体说明 模拟实现基于文本界面的< ...

  8. 零基础Java学习之this关键字

    this的含义 this代表当前对象的引用(地址值),即对象自己的引用. this可以用于构造器中:表示正在创建的那个实例对象,即正在new谁,this就代表谁 this用于实例方法中:表示调用该方法 ...

  9. 零基础Java学习之抽象类

    抽象类 介绍 抽象:即不具体.或无法具体 例如:当我们声明一个几个图形类:圆.矩形.三角形类等,发现这些类都有共同特征:求面积.求周长.获取图形详细信息.那么这些共同特征应该抽取到一个公共父类中.但是 ...

最新文章

  1. 7行Python代码,搭建可以识花的机器学习App|视频教程
  2. 【题解】 SP5973 SELTEAM - Selecting Teams
  3. Nginx+Tomcat集群与负载均衡
  4. 华为鸿蒙适配计划,华为鸿蒙适配计划提前曝光,快看看有你的机型吗?
  5. 【PAT乙级】1046 划拳 (15 分)
  6. ES6模板字符串【${}配合反单引号一起用】
  7. 垃圾邮件过滤——学习笔记
  8. python 保存文件 吃内存_python检测空间储存剩余大小和指定文件夹内存占用的实例...
  9. Matlab Tricks(十五) —— 圆的正确画法
  10. dubbo 学习资料
  11. Dxg——AD(Altium Designer) 开发笔记整理分类合集【所有的相关记录,都整理在此】
  12. 基于MyEclipse+Mysql+Tomcat+SSH开发的运动会管理系统
  13. xmapp教程及扩展
  14. Centos7.2修复yum
  15. 企小码会话存档使用教程——删人提醒
  16. mysql 5.7 ga_mysql 5.7.9(GA) 安装
  17. 手动修复本地DNS教程
  18. windows的局域网渗透
  19. C# Code Review Checklist
  20. 基于java愤怒的小鸟游戏的设计与实现

热门文章

  1. # 内存屏障:骇客的硬件视角(1)
  2. ubuntu root默认密码(初始密码)
  3. C#自定义工业控件开发
  4. 学习 Message(17): WM_SYSCOMMAND 消息[一]
  5. mysql三锁,mysql锁机制之表锁(三)
  6. 3.5.4 CSMA/CD 协议
  7. 3.1 数据链路层功能概述
  8. 从TimeQuest角度看set_max_delay
  9. leetcode_894. All Possible Full Binary Trees
  10. double转换为int以及浮点型相加损失精度问题