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

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

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

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

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

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

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

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

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

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

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

1 package test;

public class Student01 {

//定义属性

public String name;

public int age;

public String sex;

/**

* 无参的构造方法:

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

*/

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

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

}

public static void main(String[] args) {

Student01 s1 = new Student01();//执行这一步的时候会自动调用Student01()

//通过 对象.属性来给属性赋值

s1.name = "张三";

s1.age = 18;

s1.sex = "男";

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

}

}

结果:

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

姓名:张三

性别:男

年龄:18

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

1 package test;

public class Student02 {

// 定义属性

public String name;

public int age;

public String sex;

//定义有参构造方法

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

this.name = name; //将形参变量的值,赋给成员变量。 this指当前对象,这里不会的小伙伴不用慌它们的意思是:

this.age = age; //拿name来举例this.name = name;就是将下面传过来的name值(张翠花)赋值给上面定义属性的(public String name;)name

this.sex = sex;

}

public static void main(String[] args) {

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

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

}

}

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

1 package test;

public class Student02 {

// 定义属性

public String name;

public int age;

public String sex;

//定义有参构造方法

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

this.name = name;

this.age = age;

this.sex = sex;

}

//定义无参构造方法

public Student02() {

}

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

public Student02(String name, String sex){

this.name = name;

this.sex = sex;

}

public static void main(String[] args) {

Student02 s2 = new Student02("张翠花", 18, "女");//调用构造器的时候传参,类似于调用普通带参方法 add(1,1);

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

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

//创建一个新的对象

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

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

//因为这里用的是没有给年龄传值的构造器,所以打印的年龄是初始值0

}

}

结果:

姓名:张翠花

性别:女

年龄:18

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

姓名:石榴姐

性别:女

年龄:0

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[Java构造器(构造方法/constructor)]http://www.zyiz.net/tech/detail-124331.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. Blender中的大师级3D环境场景制作学习教程
  2. ros和java通讯_ROS学习之路(二)——通信架构(上)
  3. 新浪微博授权认证过程
  4. 微软 改变 开源【几个站点】
  5. 推荐周立功先生的一本书
  6. 软考网络管理员学习笔记3之第三章网络体系结构
  7. VS2013 int main(int argc, char** argv)参数传递
  8. Callback Functions Tutorial
  9. 程序员面试——C++工程师面试大全第一部分
  10. paramiko模块_玩转网络自动化之Netmiko模块
  11. Leetcode705.Design HashSet设置哈希集合
  12. Python手册(Python Basics)--Python基础
  13. 《HTTP 权威指南》—— 连接管理
  14. java openxml_Excel单元格中的OpenXml和Date格式
  15. 消息推送实现方法、移动终端及消息推送系统
  16. access是用来干什么的_access是干什么用的
  17. multipartfile获取数据_关于使用Springmvc的MultipartHttpServletRequest来获得表单上传文件的问题,万分感谢~...
  18. 主动降噪耳机推荐,值得入手的四款降噪蓝牙耳机分享
  19. 使用超终端连接Cisco 2950交换机步骤,通过console口
  20. 重磅!网易楚留香手游改名“一梦江湖”内幕,竟跟腾讯有关?

热门文章

  1. 什么是物理路径、相对路径、绝对路径、根目录------java初学者学习笔记
  2. 4.海康威视-Springboot下实现注册与注销
  3. vipjr少儿英语,多少岁孩子都能学吗?
  4. Android Framework 入门学习
  5. Protel电路设计中的网络标号、总线与跳线 (转)
  6. 教教没有新浪邀请码的同学如何自己动手获得新浪邀请码
  7. http、https以及状态码超全详解
  8. mysql视图参数_MySQL视图概述
  9. 云网端融合形成新计算体系,催生云上新物种
  10. 分支限界法——以单源最短路径为例,理解什么是分支限界法