构造器也叫构造方法,是一种特殊的方法,是用于创建对象实例调用的方法,构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化(缺省构造器)。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。

声明格式:

(修饰符) 类名(形参列表){

//n条语句

}

要点:

1、一个类的构造器必须和类名一致。

2、构造器虽然有返回值,但是不能定义返回值类型,因为已经返回了本类的实例对象,方法内部可以使用rreturn表示放的结束,但是不能return某个值。

3、可以不定义构造器,编译器会自动帮我们定义一个无参的构造器(缺省构造器),也可以自定义自己的构造器,这是编译器不会再添加缺省构造器。

4、构造器通过new关键字调用。

下面我们通过代码来介绍上面的要点,我们定义了4个类,狗、猫和猪,还有一个测试类。

public class Dog {}
public class Cat {private String name;Cat(String name){this.name = name;System.out.println("Cat有参构造方法");}
}
public class Pig {Pig(){System.out.println("Pig无参构造方法");}Pig(String name){System.out.println("Pig有参构造方法");}
}
public class Test {public static void main(String[] args) {Dog dog1 = new Dog();                //1//Dog dog2 = new Dog("狗");            //2//Cat cat2 = new Cat();             //3Cat cat1 = new Cat("猫");          //4Pig pig1 = new Pig();               //5Pig pig2 = new Pig("猪");          //6}}

输出结果为:

Cat有参构造方法
Pig无参构造方法
Pig有参构造方法

看我们的定义的类,都符合要点的1、2点,测试类的调用,也符合要点的第4点,下面我们主要讲解第3点:

1、 Dog dog1 = new Dog();

Dog类没有自定义构造器,所以编译器自定义一个无参的缺省构造器。

2、//Dog dog2 = new Dog("狗");

Dog类没有自定义带参构造器 ,所以这里会报错。

3、//Cat cat2 = new Cat();

Cat类自定义了带参构造器,所以编译器不会再自定义无参缺省构造器,这里调用无参构造器会出错。

4、Cat cat1 = new Cat("猫");

Cat类自定义了带参构造器,所以这里能调用带参构造器。

5、Pig pig1 = new Pig();

Pig类自定义了无参构造器,所以编译器不会再自定义无参缺省构造器,这里调用无参构造器是调用自定义的,所以能调用。

6、Pig pig2 = new Pig("猪");

Pig类自定义了带参构造器,所以这里能调用带参构造器。

构造器的简单介绍就但这里。

构造器(详解与代码)相关推荐

  1. 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)

    Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...

  2. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

  3. 图像质量损失函数SSIM Loss的原理详解和代码具体实现

    本文转自微信公众号SIGAI 文章PDF见: http://www.tensorinfinity.com/paper_164.html http://www.360doc.com/content/19 ...

  4. python 自动化-Python API 自动化实战详解(纯代码)

    主要讲如何在公司利用Python 搞API自动化. 1.分层设计思路 dataPool :数据池层,里面有我们需要的各种数据,包括一些公共数据等 config :基础配置 tools : 工具层 co ...

  5. 数学建模——智能优化之遗传算法详解Python代码

    数学建模--智能优化之遗传算法详解Python代码 import numpy as np import matplotlib.pyplot as plt from matplotlib import ...

  6. 数学建模——主成分分析算法详解Python代码

    数学建模--主成分分析算法详解Python代码 import matplotlib.pyplot as plt #加载matplotlib用于数据的可视化 from sklearn.decomposi ...

  7. 数学建模——智能优化之模拟退火模型详解Python代码

    数学建模--智能优化之模拟退火模型详解Python代码 #本功能实现最小值的求解#from matplotlib import pyplot as plt import numpy as np imp ...

  8. 数学建模——智能优化之粒子群模型详解Python代码

    数学建模--智能优化之粒子群模型详解Python代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplo ...

  9. 数学建模——支持向量机模型详解Python代码

    数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...

  10. 数学建模——一维、二维插值模型详解Python代码

    数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...

最新文章

  1. linux的strace命令
  2. 直观讲解一下RPC调用和HTTP调用的区别
  3. iOS 通知观察者的被调函数不一定运行在主线程
  4. VideoLAN、VLC 和 FFmpeg联合开发AV1 解码器 Dav1d
  5. StarUML 逆向工程插件加载失败问题解决
  6. leetcode253. 会议室 II
  7. python字符串用法_笔记:python字符串的使用
  8. rails log_level
  9. qt tableview修改表格内容_如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改
  10. Springboot的常规属性配置和类型安全配置
  11. mac homebrew加速
  12. QT--3.创建一个简单的图形界面
  13. 网口压线顺序_网线水晶头接法顺序_网线水晶头接法口诀
  14. python制作电脑软件_python制作一个桌面便签软件 -电脑资料
  15. 神经网络第一篇——感受野的学习、计算与思考
  16. 栈的应用 - 波兰式与逆波兰式
  17. Oracle索引(Index)创建使用
  18. GDUT 2.25 D
  19. 使用Jedis模糊删除redis集群key
  20. 国产品牌:中国牙科市场的美好未来

热门文章

  1. 下雨天、降温、伤感!!!10.25
  2. 什么是相对路径什么是绝对路径?
  3. 陌陌凭什么排中国iOS收入榜社交第一?无需惊奇
  4. 「实在RPA·法院智能辅办」加「数」提高办案效率
  5. c语言实现学生二科成绩的单链表,c++链表实现学生成绩管理系统(简易版)
  6. 基于图像的口罩佩戴自动检测系统设计
  7. jQuery实现倒计时效果
  8. css中img如何定位,使用CSS定位img
  9. 新品上新如何选择黄金长尾词,如何组合优质标题?
  10. ::before和::after伪元素的用法