Thisjavabean对象数组

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

踩坑:Unity导出WebGL发布到手机上竖屏时强制显示横屏

具体的适配问题 公司的项目需要将游戏导出WebGL 发布到Web平台 本以为是个很简单的事情 谁知道却被个横竖屏适配搞的头晕 毕竟只有大学浅浅的学了下HTML这门语言 出来工作后基本上都是在跟C# Lua打交道 言归正传 看看具体问题吧 游戏如果从横屏进入 基本上不会有什么适配问题…

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的方式增长。第1周少了1个朋友......

Rabnud博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的 方式增长。第1周少了1个朋友,剩下的朋友数量翻倍;第2周少了2个朋友,剩下的朋友数量 翻倍。一般而言,第N周少了N个朋友,剩下的朋友数量翻倍…

HDF4文件转TIF格式

HDF4 HDF4(Hierarchical Data Format version 4)是一种用于存储和管理机器间数据的库和多功能文件格式。它是一种自描述的文件格式,用于存档和管理数据。 HDF4与HDF5是两种截然不同的技术,HDF5解决了HDF4的一些重要缺陷。因此&am…

Mean teacher are better role models-论文笔记

论文笔记 资料 1.代码地址 2.论文地址 https://arxiv.org/pdf/1703.01780 3.数据集地址 CIFAR-10 https://www.cs.utoronto.ca/~kriz/cifar.html 论文摘要的翻译 最近提出的Temporal Ensembling方法在几个半监督学习基准中取得了最先进的结果。它维护每个训练样本的标签…

设计模式探索:策略模式

1. 什么是策略模式(Strategy Pattern) 定义 策略模式(Strategy Pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而…

Unity 使用AVProMovieCapture实现Game视图屏幕录制

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity 使用AVProMovieCapture实现Game视图屏幕录制 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心…

01背包问题-队列分支限界法-C++

0-1背包问题-队列分支限界法 问题描述: 给定n种物品和一个背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?对于给定的n种物品的重量和价值,以及背包的容量&…

17-JS封装:工具类方法

目录 一、extend方法 二、添加一些工具类方法:$.xxx() 实现1: 实现2: 一、extend方法 jQuery.fn.extend jQuery.extend function(...args){let target,source[];source[...args];//判断2种情况 //$.extend({}) -->给$添加属性//$.…

算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在算法模型构建中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距…

源码航行阅读目录

🏀 前言 在准备面试和学习的过程中,我阅读了比较多的源码,比如 JUC、Spring、MyBatis,收获了很多代码的设计思想,也对平时调用的 API 有了更深入的理解;但过多散乱的笔记给我的整理复习带来了比较大的麻烦…

基于Java技术的人事管理系统

你好,我是专注于计算机科学领域的小野。如果你对人事管理系统感兴趣或有相关需求,欢迎私信交流。 开发语言: Java 数据库: MySQL 技术: B/S模式、Java技术、SpringBoot 工具: Eclipse、MySQL、浏览…

【linux学习---1】点亮一个LED是多么的困难!!!

文章目录 1、原理图找对应引脚2、IO复用3、IO配置4、GPIO配置5、GPIO时钟使能6、总结7、编程8、编译9、链接10、格式转换11、反汇编(查看用)12、使用Makefile操作13、代码烧写14、代码验证 1、原理图找对应引脚 从上图 可以看出, 蜂鸣器 接到…

Photoshop属于什么软件 Photoshop缓存文件清理 Mac清理PS缓存 苹果电脑ps内存满了怎么清理

对于所有热爱使用Adobe Photoshop的Mac用户来说,这款软件无疑是创意工作的强大助手。但是,随着时间的积累,你可能会发现Photoshop开始变得有点慢,反应迟钝。这通常是因为Photoshop的缓存和临时文件堆积,占用了宝贵的系…

刷题之买股票的最佳时机(leetcode)

买股票的最佳时机 动态规划入门题。 最简单的模拟式解法&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {//也可以换一种思路&#xff0c;因为只交易一次&#xff0c;那么找出股票最便宜的时候买入&#xff0c;最贵的时候卖出&#xff…

每日一题~ (判断是否是合法的出栈序列)

大概的题意&#xff1a; 将 1-n 按照顺序进栈&#xff0c;问 输入的序列是否是合法的出栈序列。 遍历序列&#xff0c;如果当前这个值a小于 栈顶的值&#xff0c;说明它还未进栈&#xff08;因为我们是按照顺序进栈的&#xff09;&#xff0c;所以我们将 一些元素进栈&#xff…

uniapp 封装请求

新建request文件夹 下新建index.js 和index.js 或者创建units文件放入index.js 和api文件夹放入index.js(api.js)//看公司规范 1. index.js // 全局请求封装 // const base_url http://localhost:8080/devapi var base_url process.env.NODE_ENV development ? http://…

Studying-代码随想录训练营day27| 贪心算法理论基础、455.分发饼干、376.摆动序列、53.最大子序和

第27天&#xff0c;贪心开始&#xff01;(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 贪心算法理论基础 贪心的套路 贪心的一般解题步骤 总结 455.分发饼干 376.摆动序列 53.最大子序和 总结 贪心算法理论基础 什么是贪心&#xff1f;—— 贪…

自动化设备上位机设计 三

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 using SqlSugar;namespace 自动化上位机设计 {public partial class Form1 : Form{SqlHelper sqlHelper new SqlHelper();SqlSugarClient dbContent null;bool IsRun false;int Count 0;public Form1(){Initializ…

SpringBoot新手快速入门系列教程五:基于JPA的一个Mysql简单读写例子

现在我们来做一个简单的读写Mysql的项目 1&#xff0c;先新建一个项目&#xff0c;我们叫它“HelloJPA”并且添加依赖 2&#xff0c;引入以下依赖&#xff1a; Spring Boot DevTools (可选&#xff0c;但推荐&#xff0c;用于开发时热部署)Lombok&#xff08;可选&#xff0c…

Google Earth Engine(GEE)——在控制台打印出来所选区域的缩略图

结果 函数 ui.Thumbnail(image, params, onClick, style) A fixed-size thumbnail image generated asynchronously from an ee.Image. Arguments: image (Image, optional): The ee.Image from which to generate the thumbnail. Defaults to an empty ee.Image. param…