构造器(详解与代码)
构造器也叫构造方法,是一种特殊的方法,是用于创建对象实例调用的方法,构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化(缺省构造器)。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。
声明格式:
(修饰符) 类名(形参列表){
//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类自定义了带参构造器,所以这里能调用带参构造器。
构造器的简单介绍就但这里。
构造器(详解与代码)相关推荐
- 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)
Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...
- 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码
粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...
- 图像质量损失函数SSIM Loss的原理详解和代码具体实现
本文转自微信公众号SIGAI 文章PDF见: http://www.tensorinfinity.com/paper_164.html http://www.360doc.com/content/19 ...
- python 自动化-Python API 自动化实战详解(纯代码)
主要讲如何在公司利用Python 搞API自动化. 1.分层设计思路 dataPool :数据池层,里面有我们需要的各种数据,包括一些公共数据等 config :基础配置 tools : 工具层 co ...
- 数学建模——智能优化之遗传算法详解Python代码
数学建模--智能优化之遗传算法详解Python代码 import numpy as np import matplotlib.pyplot as plt from matplotlib import ...
- 数学建模——主成分分析算法详解Python代码
数学建模--主成分分析算法详解Python代码 import matplotlib.pyplot as plt #加载matplotlib用于数据的可视化 from sklearn.decomposi ...
- 数学建模——智能优化之模拟退火模型详解Python代码
数学建模--智能优化之模拟退火模型详解Python代码 #本功能实现最小值的求解#from matplotlib import pyplot as plt import numpy as np imp ...
- 数学建模——智能优化之粒子群模型详解Python代码
数学建模--智能优化之粒子群模型详解Python代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplo ...
- 数学建模——支持向量机模型详解Python代码
数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...
- 数学建模——一维、二维插值模型详解Python代码
数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...
最新文章
- linux的strace命令
- 直观讲解一下RPC调用和HTTP调用的区别
- iOS 通知观察者的被调函数不一定运行在主线程
- VideoLAN、VLC 和 FFmpeg联合开发AV1 解码器 Dav1d
- StarUML 逆向工程插件加载失败问题解决
- leetcode253. 会议室 II
- python字符串用法_笔记:python字符串的使用
- rails log_level
- qt tableview修改表格内容_如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改
- Springboot的常规属性配置和类型安全配置
- mac homebrew加速
- QT--3.创建一个简单的图形界面
- 网口压线顺序_网线水晶头接法顺序_网线水晶头接法口诀
- python制作电脑软件_python制作一个桌面便签软件 -电脑资料
- 神经网络第一篇——感受野的学习、计算与思考
- 栈的应用 - 波兰式与逆波兰式
- Oracle索引(Index)创建使用
- GDUT 2.25 D
- 使用Jedis模糊删除redis集群key
- 国产品牌:中国牙科市场的美好未来