零基础Java学习之构造器
构造器(Constructor)
构造器又称为构造方法,那是因为它长的很像方法。但是和方法还有有所区别的。
构造器的作用
要创建一个类的实例对象,必须调用一个对象的构造器,来完成类的实例初始化过程。实例初始化过程就是为实例变量赋初始值的过程。
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
注意:无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。
构造方法的定义格式
【修饰符】 构造器名(){// 实例初始化代码
}
【修饰符】 构造器名(参数列表){// 实例初始化代码
}
示例代码如下:
public class Student {private String name;private int age;// 无参构造public Student() {} // 有参构造public Student(String n,int a) {name = n;age = a; }//此处其他代码省略
}
构造器的执行时机
在实例化对象时,调用(实例化一次调用一次)
注意事项
- 构造器名必须与它所在的类名必须相同。
- 它没有返回值,所以不需要返回值类型,甚至不需要void
- 如果你不提供构造器,系统会给出无参数构造器,并且该构造器的修饰符默认与类的修饰符相同
- 如果你提供了构造器,系统将不再提供无参数构造器,除非你自己定义。
- 构造器是可以重载的,既可以定义参数,也可以不定义参数。
- 构造器不能被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学习之构造器相关推荐
- java学习笔记:零基础java学习路线+配套资料+书籍推荐
公众号菜鸟名企梦2018年,精品文章汇总: 01 我的秋招 我的秋招offer 我的offer选择 秋招全面总结-必读宝典 求职必读 02 零基础学习路线 零基础-java学习路线(上) 零基础-ja ...
- 授人予鱼不如授人予渔:零基础java学习路线分享
一切不以求职找工作为目标的学习路线分享都是耍流氓. 博主是19年7月毕业的应届生:985.A+学科硕士.2018年的秋招收获了:百度.腾讯.头条.美团.猿辅导.度小满.猫眼.流利说等offer.off ...
- 零基础——java学习路线(下)
学习路线分上中下三篇,前两篇已经发布了,本文是学习路线系列的最后一篇.有没有提到的点或学习疑问欢迎评论区留言~ 公众号后台回复"资料"即可获取学习资料大礼包,你想找的基本都有,外加 ...
- 零基础Java学习之接口
介绍 接口的介绍我们从三个方面来说: 从使用上来说是继承的一种扩展,因为java不支持多继承,而有了接口就能够实现多继承的效果. 有时候需要必须从几个类中抽取出一些共同的行为特征,而它们之间又没有继承 ...
- 零基础Java学习之继承
继承 继承的概述 继承的理解 继承的好处 继承的格式 继承的特点一:成员变量 私有化(private) 成员变量不重名 成员变量重名 继承的特点二:成员方法 成员方法不重名 成员方法重名--重写(Ov ...
- 零基础Java学习之多态
介绍 多态是Java的三大特性之一,另外两个分别是:继承和封装(前面博客已经说了继承和封装了,可以看一下).这两个可以说在一定程度了为多态打下了基础. 通过多态,可以实现一个行为具有多种形态,这里的形 ...
- 零基础Java学习之初级项目实践(客户信息管理软件-附源码)
项目涉及知识点 基础的面向对象编程项目. 类和对象(属性.方法及构造器) 类的封装 引用数组 数组的插入.删除和替换 对象的聚集处理 多对象协同工作 需求说明 总体说明 模拟实现基于文本界面的< ...
- 零基础Java学习之this关键字
this的含义 this代表当前对象的引用(地址值),即对象自己的引用. this可以用于构造器中:表示正在创建的那个实例对象,即正在new谁,this就代表谁 this用于实例方法中:表示调用该方法 ...
- 零基础Java学习之抽象类
抽象类 介绍 抽象:即不具体.或无法具体 例如:当我们声明一个几个图形类:圆.矩形.三角形类等,发现这些类都有共同特征:求面积.求周长.获取图形详细信息.那么这些共同特征应该抽取到一个公共父类中.但是 ...
最新文章
- 7行Python代码,搭建可以识花的机器学习App|视频教程
- 【题解】 SP5973 SELTEAM - Selecting Teams
- Nginx+Tomcat集群与负载均衡
- 华为鸿蒙适配计划,华为鸿蒙适配计划提前曝光,快看看有你的机型吗?
- 【PAT乙级】1046 划拳 (15 分)
- ES6模板字符串【${}配合反单引号一起用】
- 垃圾邮件过滤——学习笔记
- python 保存文件 吃内存_python检测空间储存剩余大小和指定文件夹内存占用的实例...
- Matlab Tricks(十五) —— 圆的正确画法
- dubbo 学习资料
- Dxg——AD(Altium Designer) 开发笔记整理分类合集【所有的相关记录,都整理在此】
- 基于MyEclipse+Mysql+Tomcat+SSH开发的运动会管理系统
- xmapp教程及扩展
- Centos7.2修复yum
- 企小码会话存档使用教程——删人提醒
- mysql 5.7 ga_mysql 5.7.9(GA) 安装
- 手动修复本地DNS教程
- windows的局域网渗透
- C# Code Review Checklist
- 基于java愤怒的小鸟游戏的设计与实现
热门文章
- # 内存屏障:骇客的硬件视角(1)
- ubuntu root默认密码(初始密码)
- C#自定义工业控件开发
- 学习 Message(17): WM_SYSCOMMAND 消息[一]
- mysql三锁,mysql锁机制之表锁(三)
- 3.5.4 CSMA/CD 协议
- 3.1 数据链路层功能概述
- 从TimeQuest角度看set_max_delay
- leetcode_894. All Possible Full Binary Trees
- double转换为int以及浮点型相加损失精度问题