day14_类中成员之构造器

news2024/11/26 15:40:50

由来

我们发现我们new完对象时,所有成员变量都是默认值,如果我们需要赋别的值,需要挨个为它们再赋值,太麻烦了。我们能不能在new对象时,直接为当前对象的某个或所有成员变量直接赋值呢。可以,Java给我们提供了构造器。

构造器的作用

  • 在创建对象的时候为实例变量赋初始值。 构造器只为实例变量初始化,不为静态类变量初始化

构造器的语法格式

构造器又称为构造方法,那是因为它长的很像方法。但是和方法还有有所区别的。

示例代码

public class Student {
    private String name;
    private int age;

    // 无参构造
    public Student() {
    }

    // 有参构造
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //类中的其他代码
}

注意事项:

  • 构造器名必须与它所在的类名必须相同。
  • 它没有返回值,所以不需要返回值类型,甚至不需要void
  • 如果你不提供构造器,系统会给出无参数构造器,并且该构造器的修饰符默认与类的修饰符相同
  • 如果你提供了构造器,系统将不再提供无参数构造器,除非你自己定义。
  • 构造器是可以重载的,既可以定义参数,也可以不定义参数。
  • 构造器的修饰符只能是权限修饰符,不能被其他任何修饰

标准JavaBean

JavaBean是 Java语言编写类的一种标准规范。符合JavaBean 的类,要求:

  1. 类必须是具体的和公共的,
  2. 并且具有无参数的构造方法,
  3. 成员变量私有化,并提供用来操作成员变量的set 和get方法。
  4. 其他要求...

格式:

public class ClassName{
  //私有化成员变量
    
  //无参构造方法【必须】
  //有参构造方法【建议】
  	
  //getXxx()
  //setXxx()
  //其他成员方法
    
}

代码示例

public class Student {
    // 成员变量
    private String name;
    private int age;

    // 构造方法
    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // get/set成员方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    //其他成员方法列表
    public String getInfo() {
        return "姓名:" + name + ",年龄:" + age;
    }
}

测试类,代码如下:

public class Test {
    public static void main(String[] args) {
        // 无参构造使用
        Student s = new Student();
        s.setName("张三");
        s.setAge(18);
        System.out.println(s.getName() + "---" + s.getAge());
        System.out.println(s.getInfo());

        // 带参构造使用
        Student s2 = new Student("李四", 118);
        System.out.println(s2.getName() + "---" + s2.getAge());
        System.out.println(s2.getInfo());
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工作两年,没想到靠Python搞副业让我实现了财务自由

前言 国庆假期和好友聚会,聊了各自近两年的变化,朋友的经历让我大吃一惊! 2年前他还是月薪5千的小编,现在轻松实现月入5万的小目标。 (文末送读者福利) 原来是利用空余时间学会了Python编程&#xff0c…

TPM零知识学习二—— 相关链接和页面

TPM2社区的主页地址为:https://tpm2-software.github.io/ 页面如下: 主页中提供了很多有用的链接,包括: Software | tpm2-software community 页面如下: External | tpm2-software community 页面如下:…

《计算机体系结构量化研究方法》1.8 性能的测量、报告和汇总

引入 1、一些概念 响应时间:手机用户所关注的“速度”,也就是一个事件从启动到完成的时间,又称为执行时间。 吞吐量:给定时间内完成的总工作量,WSC的操作人员关注这个。 执行时间是性能的倒数(即执行时间…

DSP之Controlsuit和C2000Ware下载安装

DSP之Controlsuit和C2000Ware下载安装 Controlsuit 用于 C2000TM 微处理器的 controlSUITETM 是一套全面的软件基础设施和软件工具集,旨在最大程度地缩短软件开发时间。从特定于器件的驱动程序和支持软件到复杂系统应用中的完整系统示例,controlSUITET…

Redis击穿、穿透、雪崩

Redis 的基本概念 在没有添加 Redis 的时候,后端的查询流程是: 用户访问页面-请求后端服务-经过逻辑处理后,去数据库查询信息。 在添加 Redis 的之后,后端的查询流程是: 用户访问页面-请求后端服务-经过逻辑处理后&a…

超强AI绘图-文生图

一、前言 前面汇总了四种AI绘图的方法,详情可以点击下图跳转到文章《AI绘画合集(11月汇总)》。主要内容是:具象意象派AI作图、AI绘制专属动漫头像、基于ViLG模型AI 作画。点击下面文章跳转! 《AI绘图—对中文拟合度…

LabVIEW创建类 3

LabVIEW创建类 3 继承 通过“继承”可在现有类的基础上创建新类。若创建一个新的LabVIEW类并将它设置为继承另一个类的数据及成员VI,这个新类将可使用它所继承的类中“公共”及“保护”型的成员VI。这个新类还可添加自己的数据和成员VI以丰富其功能。例如&#xf…

聚观早报 | 脸书泄露数据被罚20亿;iPhone15将全系支持灵动岛

今日要闻:脸书泄露数据被罚20亿;iPhone15将全系支持灵动岛;540万推特用户数据被盗;罗永浩入局tiktok;特斯拉研发改款Model3脸书泄露数据被罚20亿 据报道,脸书因泄露5亿用户数据,被欧洲监管机构罚…

Starday为什么是跨境电商卖家的不二之选?

据国内海关统计显示,近5年来,中国跨境电商规模增长近10倍,年增长率在30%以上,占国际贸易近40%。基于流量模式的跨境电商直播、垂直跨境电商等新模式蓬勃发展,近几年跨境电商一直不断地在深度融合发展,加之疫…

WSL Ubuntu20.04安装pycairo指南

环境说明 wsl Ubuntu20.04 走过的一些可能有用的弯路 由于pycairo要求python3.7,但是之前Ubuntu上有个3.6的python环境,所以就安装了python3.8: sudo apt install python3.8然后python3命令还是链接到python3.6,结果就yongln …

Stateflow状态转移练习

文章目录1.外部转移与内部转移1.1 stateflow1.2 分析2.外部转移内部转移超转移2.1 stateflow2.2 video1.外部转移与内部转移 1.1 stateflow 1.2 分析 首先是 xyz0,然后进入 A 状态,此时 A 的 en 激活,xx1,即 x1其次进入默认状态…

聊天软件im即时通讯源码酷信视酷,在线语音视屏通话端对端加密聊天,支持7端互通带部署教程

APP端有安卓端苹果端,PC端,web端,管理端有PC后台! .产品为独立开发,非网上下载不能用的产品! .高端产品,即时聊天软件技术难度大,请不要拿网络其他聊天软件来对比&#xff0…

多线程,了解-概念-实现方式-常见方法-安全问题-死锁-生产者消费者

了解 简单了解多线程 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。 简单了解多线程 简单了解多线程 简单了解多线程 简单了解多线程 概念 线程相关的概念 并行:在同…

【Linux进阶】-- 1.python脚本实现守护进程daemon调度,启停等

"怀斯曼不蒸汽啊"1. Linux守护进程介绍1.1 查看进程2. python指令for linux2.1 运行shell命令3. 代码讲解3.1 创建守护进程文件pre_deal.py3.2 用脚本运行3.3 用一个python程序来管理该任务任务介绍: 首先python创建文件1,作用是创建一个守护进程,内容是持续输出时间…

<C++>手撕搜索二叉树

目录 一、搜索二叉树的性质 二、搜索二叉树的结构定义 三、手撕搜索二叉树非递归 1)Insert() 2)Find() 3)Erase() 4)InOder() 5)BSTree(const BSTree& t) 拷贝构造 6)~BSTree()析构函数 四、手…

【学习笔记65】JavaScript的继承

一、认识继承 function Person(name) {this.name name}Person.prototype.sayName () > {console.log(name)}function Stu(age) {this.age age}const s new Stu(18)console.log(s) // {age: 18} 说明: 想让s这个对象内部有一个name属性, 并且可以使用 sayN…

双功能连接试剂:Alkyne hydrazide,炔烃-酰肼 主要特点进行分享

Alkyne hydrazide物理参数: CAS号:N/A |英文名:Alkyne hydrazide | 中文名:炔烃-酰肼 货号:X-CL-1132 分子式:C6H11ClN2O 分子量:162.62 纯度:95% 外形:淡黄色或白…

企业级的商用远程控制软件有哪些

现在远程控制软件,可选性还是比较大的。针对个人用户市场,也有不少免费软件。 企业用户的需求和个人用户的需求,差别较大。个人用户市场,主要诉求是免费、好用。企业用户,主要关注安全、管理功能、性能、价格等因素。…

为什么建议MySQL在2000W条左右记录分表

为什么建议MySQL在2000W条左右记录分表?这个数量问题并不是绝对的,这是一个相对的数量。在回答这个问题前我们应该先了解MySQL底层是用的什么数据结构来进行数据存储的。 MySQL底层采用的B树进行的数据存储 InnoDB存储引擎最小储存单元是页,…

【Java面试】异常常见面试题

文章目录1. Error 和 Exception 区别是什么?运行时异常和一般异常(受检异常)区别是什么?JVM 是如何处理异常的?throw 和 throws 的区别是什么?final、finally、finalize 有什么区别?NoClassDefFoundError 和 ClassNotF…