我们先来看一下什么是构造器:

1、构造器也叫构造方法或构造函数,分为有参构造器和无参构造器;

2、构造器也是一种方法,只不过是一种特殊的方法,它会在对象创建的时候被调用;

3、构造器最大的作用就是在创建对象的时候进行对象的初始化,有参构造器可以实现对象传参(后面会比较着来看有参构造器方便在哪儿了);

4、一个类可以有零个(如果没有自己定义编译器会帮你提供无参构造器)或多个构造器(【重载】不知道重载定义的小伙伴可以先记下概念);

5、构造器不能被子类继承,Java中子类会自动调用父类的构造器(同样,不了解的可以先记下概念或者跳过)

前面既然说了构造器是一种特殊的方法,我们就来看一下构造方法和普通方法的区别:

1、命名:构造器的方法名必须和类名相同,一般方法的方法名在命名规范的情况下可以随便定义。

2、修饰符:构造器不能被static、final、synchronized、abstract和native修饰

3、返回值:构造器没有返回值(但是不需要写void),一般方法要有返回值或者无返回值(void)

来看一下无参构造器的代码,同时看一下无参构造器的情况下(不定义构造器同理)是如何给属性赋值的:1 packagetest;2

3 public classStudent01 {4 //定义属性

5 publicString name;6 public intage;7 publicString sex;8

9 /**

10 * 无参的构造方法:11 * 如果不写编译器会自动加上;只要定义了构造器,不管是有参还是无参,编译器都不会再帮你定义12 */

13 public Student01() {//new对象的时候会调用这个无参构造方法,它会给new出来的对象一个初始化值(了解即可:数字为 0,字符为 null,布尔为 false,所有引用都是 null)

14 System.out.println("创建对象的过程中调用我了,在s1.name = ‘张三’;前执行,所以我在main方法的打印语句前打印");15 }16

17 public static voidmain(String[] args) {18 Student01 s1 = new Student01();//执行这一步的时候会自动调用Student01()19 //通过 对象.属性来给属性赋值

20 s1.name = "张三";21 s1.age = 18;22 s1.sex = "男";23 System.out.println("姓名:"+s1.name+"\n性别:"+s1.sex+"\n年龄:"+s1.age);24 }25

26 }

结果:

创建对象的过程中调用我了,在s1.name = ‘张三’;前执行,所以我在main方法的打印语句前打印

姓名:张三

性别:男

年龄:18

再来看有参构造器(给属性赋值不用再一个一个通过对象.属性)

1 packagetest;2

3 public classStudent02 {4 //定义属性

5 publicString name;6 public intage;7 publicString sex;8

9 //定义有参构造方法

10 public Student02(String name, int age, String sex) { //类似于普通带参方法 public void add(int a,int b){}

11 this.name =name; //将形参变量的值,赋给成员变量。 this指当前对象,这里不会的小伙伴不用慌它们的意思是:12 this.age =age; //拿name来举例this.name =name;就是将下面传过来的name值(张翠花)赋值给上面定义属性的(publicString name;)name13 this.sex =sex;14 }15

16 public static voidmain(String[] args) {17 Student02 s2 = new Student02("张翠花", 18, "女");//调用构造器的时候传参(改变默认初始化),类似于调用普通带参方法 add(1,1);

18 System.out.println("姓名:"+s2.name+"\n性别:"+s2.sex+"\n年龄:"+s2.age);19 }20

21 }

构造器不只可以定义一个,可以是零个(以前创建对象没写构造器的时候)或多个1 packagetest;2

3 public classStudent02 {4 //定义属性

5 publicString name;6 public intage;7 publicString sex;8

9 //定义有参构造方法

10 public Student02(String name, int age, String sex) { //类似于普通带参方法 public void add(int a,int b){}

11 this.name =name;12 this.age =age;13 this.sex =sex;14 }15

16 //定义无参构造方法

17 publicStudent02() {18

19 }20

21 //定义一个两个参数的构造方法(重载)不能和刚才的一样 注意:名字依然要和类名保持一致

22 publicStudent02(String name, String sex){23 this.name =name;24 this.sex =sex;25 }26

27 public static voidmain(String[] args) {28 Student02 s2 = new Student02("张翠花", 18, "女");//调用构造器的时候传参,类似于调用普通带参方法 add(1,1);

29 System.out.println("姓名:"+s2.name+"\n性别:"+s2.sex+"\n年龄:"+s2.age);30

31 System.out.println("---------------------");32

33 //创建一个新的对象

34 Student02 s3 = new Student02("石榴姐", "女");//这里可以用前面三个构造器的任意一个

35 System.out.println("姓名:"+s3.name+"\n性别:"+s3.sex+"\n年龄:"+s3.age);36 //因为这里用的是没有给年龄传值的构造器,所以打印的年龄是初始值0

37 }38

39 }

结果:

姓名:张翠花

性别:女

年龄:18

---------------------

姓名:石榴姐

性别:女

年龄:0

https://www.cnblogs.com/xpybsh/p/12570663.html

java构造器构造方法_Java构造器(构造方法/constructor)相关推荐

  1. java 重载赋值_java中构造方法,set/get方法,方法重载使用解读

    给对象赋值的方法: 1.对于public修饰的属性,对象可以在外部直接调用. 定义一个类class Poker{ public String num; private String number; p ...

  2. java 构造器 构造方法_Java构造器(构造方法/constructor)

    我们先来看一下什么是构造器: 1.构造器也叫构造方法或构造函数,分为有参构造器和无参构造器: 2.构造器也是一种方法,只不过是一种特殊的方法,它会在对象创建的时候被调用: 3.构造器最大的作用就是在创 ...

  3. java中构造器快捷方式_java 构造器 (构造方法)

    构造器 (constructor,构造方法) 3W what ? why? how? 是什么 , 为什么, 怎么用? 注意事项? What ? 是什么: 构造器(又叫构造方法)本身是一种特殊的方法,( ...

  4. java 构建函数_Java函数构造方法

    通过优锐课的java架构学习中,了解了关于java函数构造方法,分享给大家学习参考. 使用Java构造函数创建对象 Java构造函数创建一个已定义对象的新实例. 本文讨论如何使用Java构造函数方法创 ...

  5. java 私有构造_JAVA中构造方法私有化的作用是什么?

    展开全部 如果构造方法是私有的,则意味着无法从除自身之62616964757a686964616fe58685e5aeb931333431363637外的任何类访问它.这是Java提供的访问控制机制. ...

  6. java 构造块_java中构造方法、普通块、静态代码块、构造块的执行顺序

    静态块.构造块.构造方法.普通块 静态块:在类中用"{}"括号括起来,并在括号前用static修饰的块为静态块;静态块在类加载时候被调用,并且在整个生命中只调用一次 同步块 使用s ...

  7. java 构造方法 调用 构造方法_Java中构造方法调用构造方法??

    心有猛虎_细嗅蔷薇 正确的调用方法应该是直接一个this()来调用构造方法.请看代码:class Student{ String id; String name; String sex; //创建构造 ...

  8. java构造器(默认构造方法、参数化构造方法)

    构造器 构造器也叫构造方法.构造函数,是一种特殊类型的方法,负责类中成员变量(域)的初始化.构造器的用处是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化. 在用户没有 ...

  9. java构造器_Java构造器就是这么简单!

    前言 理解构造器之前,首先我们需要了解Java中为什么要引入构造器,以及构造器的作用. 在很久之前,程序员们编写C程序总会忘记初始化变量(这真的是一件琐碎但必须的事),C++引入了 构造器(const ...

最新文章

  1. 《DDIA》读书笔记(一):可靠性、可扩展性、可维护性
  2. 华数传媒牵手阿里云计算共建媒体云平台
  3. 服务器上装centos系统花屏,CentOS系统如何解决鼠标花屏的问题
  4. 深入理解分布式技术 - 消息幂等性如何保障不重复消费
  5. Boost:逐步定义的测试程序
  6. oracle 批量导出sequence,如何单独导出导入sequence?
  7. ubuntu安装vmware 64位
  8. html5播放器硬件加速,视频对比:Mango的HTML 5硬件加速很强?
  9. LibVLC —— 《基于Qt的LibVLC专业开发技术》视频教程
  10. 计算机数字键盘如何用,电脑小数字键盘不能使用的原因和解决方法
  11. 医疗行业某集团公司财务系统迁移阿里云的案例分享
  12. Chrome和Chromium的区别
  13. Yonex 各系列球拍指数
  14. c语言大作业矩阵运算,用C语言实现矩阵运算
  15. 学生表课程表成绩表教师表
  16. 千兆12光12电管理型工业以太网交换机 12千兆光12千兆电口宽温环网交换机
  17. MOOC《深度学习基础》笔记(一)
  18. 2022最新超级蜘蛛池站群优化网站系统源码
  19. openpsoe 代码解读(一)
  20. 工作学会9句话,升职加薪变股东

热门文章

  1. Bailian2679 整数的立方和【入门】
  2. 【几何/数学】概念的理解 —— (非)刚体变换((non-)rigid transformation)
  3. 强悍的 Linux —— Linux 中 TTY 是什么意思
  4. warning C4819 解决方案 warning C4819: The file contains a character that cannot be represented in the cu
  5. matlab 可视化 —— 常用绘图函数
  6. mysql 随机记录 newid()_sql随机查询数据语句(NewID(),Rnd,Rand(),random())
  7. simulink 28335 代码_simulink建立自己的模块库
  8. 无法关闭microsoft word_仅记录word文档损坏后的挣扎(亲历)
  9. 张莉python 玩转数据答案_中国大学MOOC(慕课)用Python玩转数据答案大全
  10. python基础编程语法-1.Python基础语法