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

java 构造器 构造方法_Java构造器(构造方法/constructor)我们先来看一下什么是构造器:1、构造器也叫构造方法或构造函数,分为有参构造器和无参构造器;2、构造器也是一种方法,只不过是一种特殊的方法,它会在对象创建的时候被调用;3、构造器最大的作用就是在创建对象的时候进行对象的初始化,有参构造器可以实现对象传参(后面会比较着来看有参构造器方便在哪儿了);4、一个类可以有零个(如果没有自己定义编译器会帮你提供无参构造器)或多个构造器(【重载】不知道重载定义的小…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

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

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

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

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

[Java构造器(构造方法/constructor)]http://www.zyiz.net/tech/detail-124331.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234093.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入理解设计模式之建造者模式

    深入理解设计模式之建造者模式老大突然拉住我,喜滋滋地告诉我:“公司很满意我们做的模型,又签订了一个合同,把奔驰、宝马的车辆模型都交给我们公司制作了,不过这次额外增加了一个新需求:汽车的启动、停止、喇叭声音、引擎声音都由客户自己控制,想什么顺序就什么顺序”那我们开始设计,来看一下类图:类图比较简单,在CarModel中我们定义了一个setSequence方法,车辆模型的这几个动作要如何排布,是在这个ArrayList中定义的。然后run()方法根据sequence定义的顺序完成指定的顺序动作。我们来看模型抽象类代码:

    2025年6月25日
    6
  • Win10专业版如何用命令来查看激活信息

    Win10专业版如何用命令来查看激活信息现在网购非常方便,不少用户会选择在网上直接购买组装好的Win10电脑,因为是商家直接配置安装,所以你根本不知道系统是否有激活,可能出现未激活的状况,那么要如何查看电脑的激活状态呢?下面小编就这个问题跟大家分享一下Win10专业版如何用命令来查看激活信息的方法,有需要的朋友快来了解一下吧!Win10专业版用命令来查看激活信息的方法详细如下:一、“win+R“,开启运行窗口,输入“cmd”,回车。二、我们可以使用slmgr.vbs来获得系统的激活信息。1)slmgr.vbs-dlv

    2022年5月7日
    36
  • qt 5.12.1 下载安装详细教程

    qt 5.12.1 下载安装详细教程前言:Qt是一个跨平台的C++图形界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt同XWindow上的Motif,Openwin,GTK等图形界面库以及Windows平台上的MFC、OWL、VCL、ATL是同类型的东西。一:下载地址http://download.qt.io/of…

    2022年5月13日
    56
  • leetcode55跳跃游戏_跳跃游戏leetcode

    leetcode55跳跃游戏_跳跃游戏leetcode给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标

    2022年8月8日
    9
  • Tomcat动静分离

    Tomcat动静分离前言Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。上篇博客利用Nginx反向代理的功能,实现了Tomcat的集群配置,本文使用的是Nginx的网页处理功能,实现与Tomcat的动静分离静态页面交给Nginx处理,动态页面交给Tomcat处理实验环境1、实验拓扑2、IP地址分配主机名IP地址…

    2022年6月6日
    29
  • AndroidAutoSize今日头条适配方案[通俗易懂]

    AndroidAutoSize今日头条适配方案[通俗易懂]最近公司没有什么事,闲来无聊,就研究一下今日头条的适配方案,不看不知道,真是一看吓一跳,快速上手而且还简单易懂,推荐一篇文章:http://www.wanandroid.com/blog/show/2343我也是看的这位大佬写的。今日头条适配只是一个基准,它是以宽或者高来进行适配的。今日头条的适配是通过修改Application/Activity等的DisplayMetrics…

    2022年5月3日
    480

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号