IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java构造器 -> 正文阅读

[Java知识库]Java构造器

Java构造器解释

在java的源文件中,只能有一个公共类,并且源文件的类名必须与公共类的类名相同,但可以有多个非公共类。

构造器也叫做构造函数,在Java中,构造器其实就是一个方法,只不过与其他方法不同,构造器总是结合new运算符来调用,不能对一个已经存在的对象调用构造函数来重新对该对象的实列字段重置。

构造器的作用:在构造类的对象时,将类中的实列字段初始化为所希望的初始状态,说简单点,就是将类中的变量赋值为你想给这些变量的值。
以Employee的类的构造器为例:

 public Employee(String s,double s,int year,int month,int day)
 {
 	name=n;
 	salary=s;
 	hireDay=LocalDate.of(year,month,day);
 }

当我们执行下面的代码,使用构造器初始化Employee类的对象m时,

var m=new Employee("shuaishuaixi",100000,2003,05,25);

我们将会把对象m中的实例字段设置为:
name=“shuaishuaixi”;
salary=100000;
hireDay=LocalDate.of(2003,05,25);

Java中的构造器必须满足以下条件:

  1. 构造器与类同名
  2. 每个类可以有一个及以上的构造器
  3. 构造器可以有0,1或多个参数
  4. 构造器没有返回值
  5. 构造器一般伴随着new操作符一起使用(类似于LocalData和NumberFormat这两个类,使用静态工厂犯法来构造对象,本文中不作详细说明,感兴趣的小伙伴可以自行去了解)

Java的构造器类型

系统的默认构造器

如果我们在类中没有提供类的构造器,系统会为我们自动生成一个构造器,当我们在初始化类的对象时,系统会给字段设置默认的初始值:数值为0,布尔值为false,对象引用为null。
以Employee类为例,当我们调用系统默认的构造器时,
name=null;
s=0;
hireDay=null

无参数的构造器

由无参数构造器创建对象时,对象的状态可以设置为默认值,不同于系统的默认构造器,这个默认值我们可以自己设置,以Employee类的无参数构造器为例:

public Employee()
{	
	name="编号1";
	salary=10000;
	hireDay=LocalData.now();
}

当我们调用构造参数创建对象m时,m.name=“编号1”,m.salary=10000;m.hireDay=当前日期;

有参数的构造器

下面就是Employee类有两个参数的构造器

public Employee(string n,double s)
{
	name=n;
	salary=s;
}

当我们执行下面的代码创建对象m,

var m=new Employee("shuhaishuaixi",100000);

对象中的实例字段会被赋值为:
name=s;
salary=100000;
hireDay=null;
因为hireDay在构造器中没有形参,所以系统给它默认赋值为null。

构造器的重载

构造器也是一种方法,方法可以重载,同样构造器也可以重载。
如果多个方法有相同的名字、不同的参数,便出现了重载。

**要完整地描述一个方法时,需要指定方法名以及参数类型,这叫作方法的签名。**例如,Java中的String类有4个名为indexOf的公共方法,它们的签名是:

indexOf(int);
indesOf(int int);
indexOf(String);
indexOf(String int);

注意:返回类型不是方法签名的一部分。

如果类中至少提供了一个有参数的构造器,但是没有提供无参数的构造器,那么构造对象时不提供参数是不合法的。

另外,如果构造器的第一个语句形如this(…),这个构造器将调用同一个类的另一个构造器。比如:

public Employee(double s)
{
	this("Employee #“+nextId,s);
	nextId++;
}

当调用new Employee(60000)时,Employee(double)构造器调用Employee(String,double)构造器。采用这种方式使用this关键字非常有用,这样对公共的构造器代码只需要编写一次就行。

我是shuaishuaixi,一位在读双非本科生,若有什么问题,欢迎大家在下面留言讨论,文章有什么错误,也欢迎大家指出,共同进步。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:19:04  更:2021-09-23 11:20:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:45:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码