Thisjavabean对象数组

news2025/2/24 12:01:33

This

1.概念
  • this是一个对象
  • this是一个构造函数
2.介绍
解决局部变量和成员变量命名冲突

this在面向对象-封装那一篇里,有被两个地方提及。
但我们先简单给一个例子:

public Person(String name, String phone, String qqPassword, String bankCardPassword) {
        this.name = name;
        this.phone = phone;
        this.qqPassword = qqPassword;
        this.bankCardPassword = bankCardPassword;
    }

这是一个构造方法,this指向new出来的那个对象
image.png
image.png
而set方法中,是调用setName的那个对象
image.png
那么就会出现成员变量和局部变量命名冲突,this就是去解决这个问题的
image.png

构造方法互相调用

this是可以代表构造方法的,如何使用呢?
在某一个构造方法中调用另一个构造方法,一定要将this写在构造方法的第一行。
image.png

javabean

1.概念

javaBean 是指符合特定约定的 Java 类
JavaBean 是一种可重用组件,主要用于构建企业级应用程序,数据之间的传递。
(1)类必须是具体的(非抽象 abstract)和公共的,public class 类名
(2)并且具有无参数的构造方法,有参构造方法
(3)所有成员变量私有化,并提供用来操作成员变量的set 和get 方法。
建议在测试的过程中重写toString。

2.快速生成

如果现在我们要生成学生的属性有:

  • 学号
  • 姓名
  • 年级
  • 年龄

一般我们可以现场定义变量,但javabean让我们可以快速生成。
我们首先需要自己编写好类,属性定义为private。
然后,使用idea快速生成getter&setter。
image.png
image.png

3.例子

下面这段代码定义了一个名为Student的类,该类包含了私有属性sNo(学号)、age(年龄)、sName(姓名)、grade(年级)和sClass(班级),并提供了对这些属性的获取和设置方法。
类中包含了两个构造方法,一个无参构造方法和一个带有参数的构造方法,用于初始化Student对象的属性。
除了构造方法外,类中还包含了一系列的getter和setter方法,用于获取和设置私有属性的值。
通过这个Student类,可以创建学生对象,并对学生对象的属性进行操作。

public class Student {
    private String sNo;// 学号
    private int age;
    private String sName;//姓名
    private int grade; // 年级
    private int sClass; //班级

    public Student(String sName) {
    this.sName = sName;
    this.sNo = "Default"; // 默认学号
    this.age = 0; // 默认年龄
    this.grade =0; // 默认年级
    this = 0; // 默认班级
}

    public Student(String sNo, int age, String sName, int grade, int sClass) {
        this.sNo = sNo;
        this.age = age;
        this.sName = sName;
        this.grade = grade;
        this.sClass = sClass;
    }

    public String getsNo() {
        return sNo;
    }//获取属性

    public void setsNo(String sNo) {
        this.sNo = sNo;
    }//定义属性

    public int getAge() {
        return age;
    }

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

    public String getsName() {
        return sName;
    }

    public void setsName(String sName) {
        this.sName = sName;
    }

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

    public int getsClass() {
        return sClass;
    }

    public void setsClass(int sClass) {
        this.sClass = sClass;
    }    
}

在上文中的这里
image.png
也许一些读者会有疑问,会不会发生冲突。
在Java中,构造方法的重载是允许的,即可以有多个构造方法,只要它们的参数列表不同。在这种情况下,public Student(String sNo, int age, String sName, int grade, int sClass) 和 public Student(String sName) 两个构造方法的参数列表是不同的,因此不会产生冲突。
当你调用new Student(“zs”)时,会调用public Student(String sName)构造方法,当你调用new Student(“123456”, 20, “张三”, 1, 2)时,会调用public Student(String sNo, int age, String sName, int grade, int sClass)构造方法。因为它们的参数列表不同,所以不会发生冲突。

对象数组

1.引入

数组较为单一,我们可以想一下如果使用数组来描述一个班级,该如何描述?
其中属性就较多:

  • 班级的名字
  • 教师 【1个】
  • 班主任 【1个】
  • 学生 【多个】 -----》 数组中装一个一个的学生对象! -----》 对象数组

还要记录他们的行为等,退学,转学,什么的。
image.png
这里就要用到对象数组。

2.语法

我们该如何定义呢?
首先复习下数组的定义:

//类型[] 数组名 = new 类型[数组的长度];
	int[] arr = new int[5]

那么如果要用数组来描述学生该如何:

String[] arr = new String[5];
//首先定义了一个string类型长度为5的数组arr

Student[] arr = new Student[5];
//后定义一个长度为5的Student类型的数组arr
import bean.Student;//上文javabean里的例子

public class StudentTest {
    public static void main(String[] args) {
        // 招生
        Student zs = new Student("张三");
        Student ls = new Student("李四");
        // 声明一个数组装学生
        Student[] class420 = new Student[2];
        class420[0] = zs;
        class420[1] = ls;
        
        System.out.println(Arrays.toString(class420));

    }
}

希望各位读者大大一键三连!!!

image.png

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

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

相关文章

【踩坑】修复报错Cannot find DGL libdgl_sparse_pytorch_2.2.0.so

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 错误复现 原因分析 解决方法 错误复现 import dgldataset dgl.data.CoraGraphDataset() graph dataset[0] graph.adjacency_matrix() 原因分…

Python 学习中什么是元组,如何使用元组?

什么是元组 元组(Tuple)是Python内置的一种数据结构,用于存储多个数据项。与列表类似,元组也可以存储不同类型的数据,但它们之间存在一个重要区别:元组是不可变的,也就是说,一旦创建…

笔记13:switch多分支选择语句

引例: 输入1-5中的任意一共数字,对应的打印字符A,B,C,D,E int num 0; printf("Input a number[1,5]:"); scanf("%d",&num); if( num 1)printf("A\n"); else if(num2)printf("B\n"); else i…

文化财经macd顶底背离幅图指标公式源码

DIFF:EMA(CLOSE,12) - EMA(CLOSE,26); DEA:EMA(DIFF,9); MACD:2*(DIFF-DEA),COLORSTICK; JC:CROSS(DIFF,DEA); SC:CROSSDOWN(DIFF,DEA); N1:BARSLAST(JC)1; N2:BARSLAST(SC)1; HH:VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值 HH2:VALUEWHE…

HTML(26)——平面转换-旋转-多重转换-缩放

旋转 属性:transform:rotate(旋转角度) 角度的单位是deg。 取值为正,顺时针旋转取值为负,逆时针旋转 默认情况下,旋转的原点是盒子中心点 改变旋转的原点可以使用属性:transform-origin:水平原点位置 垂直原点位置 取值&a…

springboot+vue原创歌曲分享平台 LW +PPT+源码+讲解

3 平台分析 3.1平台可行性分析 3.1.1经济可行性 由于本平台是作为毕业设计平台,且平台本身存在一些技术层面的缺陷,并不能直接用于商业用途,只想要通过该平台的开发提高自身学术水平,不需要特定服务器等额外花费。所有创造及工作…

[BJDCTF 2nd]简单注入

sqlsqlsqlsqlsql又来喽 过滤了单双引号,等于符号,还有select等,但是这里没有二次注入 。扫描发现hint.txt 看出题人的意思是,得到密码即可获得flag。 select * from users where username$_POST["username"] and passw…

编写优雅Python代码的20个最佳实践

想要让你的代码像艺术品一样既实用又赏心悦目吗?今天我们就来聊聊如何通过20个小技巧,让你的Python代码从平凡走向优雅,让同行看了都忍不住点赞! **温馨提示:更多的编程资料,领取方式在: 1. 拥…

最小代价生成树实现(算法与数据结构设计)

课题内容和要求 最小代价生成树的实现,分别以普利姆算法和克鲁斯卡尔算法实现最小代价生成树,并分析两种算法的适用场合。 数据结构说明 普利姆算法实现最小代价生成树的图采用邻接表存储结构,还有辅助数据结构,数组nearest&am…

Lambda架构

1.Lambda架构对大数据处理系统的理解 Lambda架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则&…

揭秘“消费即收益”的循环购模式 商家智慧还是消费陷阱?

大家好,我是你们的电商策略顾问吴军。今天,我将带大家深入剖析一种新兴的商业模式——循环购模式,它以其独特的“消费赠礼、每日返利、提现自由”特性,在电商界掀起了不小的波澜。那么,这种模式究竟有何魅力&#xff1…

ip地址突然变了一个城市怎么办

在数字化日益深入的今天,IP地址不仅是网络连接的标识,更是我们网络行为的“身份证”。然而,当您突然发现您的IP地址从一个城市跳转到另一个城市时,这可能会引发一系列的疑问和担忧。本文将带您深入了解IP地址突变的可能原因&#…

Android ViewPostImeInputStage输入事件处理

InputDispatcher向InputChannel使用socket写入输入事件,触发InputEventReceiver调用来接收输入事件。 ViewPostImeInputStage处理view控件的事件 frameworks/base/core/java/android/view/InputEventReceiver.java dispatchInputEvent frameworks/base/core/jav…

Shell编程类-网站检测

Shell编程类-网站检测 面试题参考答法 a(1 2 3 4) echo ${a[0]} echo ${a[*]}这里声明一个数值,并选择逐个调用输出还是全部输出 curl -w %{http_code} urL/IPADDR常用-w选项去判断网站的状态,因为不加选择访问到的网站可能出现乱码无法判断是否网站down…

Nuxt框架中内置组件详解及使用指南(一)

title: Nuxt框架中内置组件详解及使用指南(一) date: 2024/7/6 updated: 2024/7/6 author: cmdragon excerpt: 本文详细介绍了Nuxt框架中的两个内置组件和的使用方法与功能。确保包裹的内容仅在客户端渲染,适用于处理浏览器特定功能或异步…

第1章 项目背景(学成在线),项目介绍,环境搭建

1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业,从校内到校外;从早幼教到职业培训;从教育工具到全信息化平台等等。 2020年的新…

智慧文旅(景区)解决方案PPT(42页)

智慧文旅解决方案摘要 行业分析中国旅游业正经历消费大众化、需求品质化、发展全域化和产业现代化的发展趋势。《“十三五”旅游业发展规划》的发布,以及文化和旅游部的设立,标志着旅游业的信息化和智能化建设成为国家战略。2018年推出的旅游行业安全防范…

Linux:Ubuntu18.04下开机自启动QT图形化界面

Linux:Ubuntu18.04下开机自启动QT图形化界面 Chapter1 Linux:Ubuntu18.04下开机自启动QT图形化界面一、创建rc.local文件二、建立rc-local.service文件三、启动服务查看启动状态四、重启 Chapter2 将QT应用作为开机自启动(Linux系统&#xff…

ePTFE膜(膨体聚四氟乙烯膜)应用前景广阔 本土企业技术水平不断提升

ePTFE膜(膨体聚四氟乙烯膜)应用前景广阔 本土企业技术水平不断提升 ePTFE膜全称为膨体聚四氟乙烯膜,指以膨体聚四氟乙烯(ePTFE)为原材料制成的薄膜。ePTFE膜具有耐化学腐蚀、防水透气性好、耐候性佳、耐磨、抗撕裂等优…

跟着峰哥学java 第四天 商品分类 前后端显示

1.后端 1.1mybatis-plus分页查询配置 在商品热卖数据中,只让其显示八条数据 将要使用分页 也就是service.page方法 此时需要配置 mp拦截器 Configuration public class MybatisPlusConfig {Beanpublic PaginationInterceptor paginationInterceptor() {return …