Java入门基础学习笔记41——实体类
实体JavaBean/实体类:
就是一种特殊形式的类。
1)这个类中的成员变量都要私有,并且要对外提供相应的getXXX,setXXX的方法。
2)类中必须要有一个公共的无参的构造器。其他的构造器可写可不写。
右键菜单中,选择:Generate选项:

选择Getter and Setter:

使用shift键或者ctrl键,选择name和score:

也可以自动生成有参构造器。
那么,还是需要自动生成无参构造器。Select None。
package cn.ensource.javabean;public class Student {private String name;private double score;// 必须为类提供一个公开的无参数构造器public Student() {}// 有参构造器public Student(String name, double score) {this.name = name;this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
package cn.ensource.javabean;public class Test {public static void main(String[] args) {// 目标:掌握实体类的书写要求、特点、应用场景Student s1 = new Student();s1.setName("播妞");s1.setScore(99);System.out.println(s1.getName());System.out.println(s1.getScore());}
}
运行结果:

实体类有什么特点:我们可以看出来,实体类中,只有成员变量和getter、setter方法,实体类仅仅是一个用来保存数据的java类。其中没有其他处理数据的方法,所以,我们只能用它存取数据。就是用来保存某个事物的数据的。
JAVAWEB阶段会有应用,主要是数据的实体,作为CRUD的载体。
实体类有什么应用场景?
实体类只负责数据存取,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离。
这是一种流行的开发模式。

package cn.ensource.javabean;public class Student {private String name;private double score;// 必须为类提供一个公开的无参数构造器public Student() {}// 有参构造器public Student(String name, double score) {this.name = name;this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}
package cn.ensource.javabean;public class StudentOperator {private Student student;public StudentOperator(Student student) {this.student = student;}public void printPass() {if (student.getScore() >= 60) {System.out.println(student.getName() + "学生成绩及格");} else {System.out.println(student.getName() + "学生成绩不及格");}}
}
package cn.ensource.javabean;public class Test {public static void main(String[] args) {// 目标:掌握实体类的书写要求、特点、应用场景Student s1 = new Student();s1.setName("播妞");s1.setScore(99);System.out.println(s1.getName());System.out.println(s1.getScore());StudentOperator operator = new StudentOperator(s1);operator.printPass();}
}
运行结果:

实体类对应的是软件开发里现在比较流行的开发方式,数据和数据的业务处理相分离。
面向对象的综合案例:
模仿电影信息系统:

需求:
展示系统中的全部电影:(每部电影展示:名称和价格)
允许用户根据电影的编号(id)查询出每个电影的详细信息。
目标:
使用所学的面向对象编程实现以上两个需求。
package cn.ensource.demo;public class Movie {private int id;private String name;private double price;private double score;private String director;private String actor;private String info;public Movie() {}public Movie(int id, String name, double price, double score, String director, String actor, String info) {this.id = id;this.name = name;this.price = price;this.score = score;this.director = director;this.actor = actor;this.info = info;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}public String getDirector() {return director;}public void setDirector(String director) {this.director = director;}public String getActor() {return actor;}public void setActor(String actor) {this.actor = actor;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}
}
package cn.ensource.demo;public class MovieOperator {private Movie[] movies;public MovieOperator(Movie[] movies) {this.movies = movies;}// 业务需求:展示全部电影信息public void printAllMovies() {for (int i = 0; i < movies.length; i++) {System.out.println("----系统全部电影如下----");Movie movie = movies[i];System.out.println("编号:" + movie.getId());System.out.println("名称:" + movie.getName());System.out.println("价格:" + movie.getPrice());System.out.println("-----------");}}// 根据电影的编号(id)查询出每个电影的详细信息public void SearchMovieById(int id) {for (int i = 0; i < movies.length; i++) {Movie movie = movies[i];if (movie.getId() == id) {System.out.println("电影详细如下:");System.out.println("编号:" + movie.getId());System.out.println("名称:" + movie.getName());System.out.println("价格:" + movie.getPrice());System.out.println("得分:" + movie.getScore());System.out.println("导演:" + movie.getDirector());System.out.println("主演:" + movie.getActor());System.out.println("其他信息:" + movie.getInfo());return;}else {System.out.println("没有该电影信息!");}}}
}
package cn.ensource.demo;import java.util.Scanner;public class Test {public static void main(String[] args) {// 设计一个电影类// 电影的操作类进行业务处理// 准备全部电影数据Movie[] movies = new Movie[4];movies[0] = new Movie(1, "水门桥1", 38.9, 9.8, "徐克", "吴京", "12万人观看");movies[1] = new Movie(2, "出拳吧", 38.9, 9.8, "徐克", "吴京", "12万人观看");movies[2] = new Movie(3, "月球损落", 38.9, 9.8, "徐克", "吴京", "12万人观看");movies[3] = new Movie(4, "一点就到家", 38.9, 9.8, "徐克", "吴京", "12万人观看");MovieOperator movieOperator = new MovieOperator(movies);Scanner scanner = new Scanner(System.in);while (true) {System.out.println("==电影信息系统==");System.out.println("1. 查询全部电影信息");System.out.println("2. 根据ID查询某个电影的详细信息展示");System.out.println("请您输入操作命令: ");int command = scanner.nextInt();switch (command) {case 1:movieOperator.printAllMovies();break;case 2:System.out.println("请您输入要查询的电影的Id: ");int id = scanner.nextInt();movieOperator.SearchMovieById(id);break;default:System.out.println("您输入的命令有问题!");}}}
}
运行结果:
==电影信息系统==
1. 查询全部电影信息
2. 根据ID查询某个电影的详细信息展示
请您输入操作命令:
1
----系统全部电影如下----
编号:1
名称:水门桥1
价格:38.9
-----------
----系统全部电影如下----
编号:2
名称:出拳吧
价格:38.9
-----------
----系统全部电影如下----
编号:3
名称:月球损落
价格:38.9
-----------
----系统全部电影如下----
编号:4
名称:一点就到家
价格:38.9
-----------
==电影信息系统==
1. 查询全部电影信息
2. 根据ID查询某个电影的详细信息展示
请您输入操作命令:
2
请您输入要查询的电影的Id:
3
电影详细如下:
编号:3
名称:月球损落
价格:38.9
得分:9.8
导演:徐克
主演:吴京
其他信息:12万人观看
==电影信息系统==
1. 查询全部电影信息
2. 根据ID查询某个电影的详细信息展示
请您输入操作命令:
其中:扫描器放在while语句外边,如果放在while里面,就会每次都会创建一个扫描器,浪费空间。

成员变量和局部变量的区别?

如果有C++的基础,这块还是很好理解的。
Field:成员变量,对象的属性。
相关文章:
Java入门基础学习笔记41——实体类
实体JavaBean/实体类: 就是一种特殊形式的类。 1)这个类中的成员变量都要私有,并且要对外提供相应的getXXX,setXXX的方法。 2)类中必须要有一个公共的无参的构造器。其他的构造器可写可不写。 右键菜单中࿰…...
【Linux】信号之信号的保存和处理详解
🤖个人主页:晚风相伴-CSDN博客 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 🙏如果内容有误或者有写的不好的地方的话&…...
基于Django的图书管理系统
文章目录 前言一、页面展示1.登录2.前端页面3.后端页面 二、项目上传(1)导入数据库(2)导入项目(3)数据库密码修改(4)进入网站 总结 前言 本网站调用Django编写了图书管理网站&#…...
js实现元素根据鼠标滚轮滚动向左右上下滑动着从模糊到清楚显示出来
html代码 <div ref{test} id"animatedElement" className"not-animated"> <div style{{width:"100px",height:"50px",backgroundColor:"red"}}> </div> </div> JS代码 const te…...
yocto学习
bitbake命令单独编译u-boot: $ bitbake -c compile -f u-boot-imx $ bitbake -c deploy -f u-boot-imx //部署编译生成的u-boot镜像到deploy bitbake命令单独编译kernel: bitbake -c compile -f linux-imx //编译内核 bitbake -c deploy -f linux-imx /…...
【IC设计】牛客网-序列检测习题总结
文章目录 状态机基础知识VL25 输入序列连续的序列检测VL26 含有无关项的序列检测VL27 不重叠序列检测VL28 输入序列不连续的序列检测参考资料 状态机基础知识 VL25 输入序列连续的序列检测 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output re…...
python爬虫登录到海康相机管理页面
简述 1.最近接到个任务是在管理页面更改相机的某个参数,下载官方的sdk貌似没有提供这个接口,所以只能自己写爬虫登录发请求了。 1.主要步骤 1.1 发送get请求获取到salt,sessionID,challenge等信息 http://admin:123456192.168.…...
9.Docker网络
文章目录 1、Docker网络简介2、常用基本命令3、网络模式对比举例3.1、bridge模式3.2、host模式3.3、none模式3.4、container模式3.5、自定义网络 1、Docker网络简介 作用: 容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接进行网络通信而不受到影…...
Windows VS2022 C语言使用 sqlite3.dll 访问 SQLite数据库
今天接到一个学生C语言访问SQLite数据库的的需求: 第一步,SQLite Download Page下载 sqlite3.dll 库 下载解压,发现只有两个文件: 于是使用x64 Native Tools Command Prompt 终端 生成 sqlite3.lib 和 sqlite3.exp文件 LIB -def:sqlite3.def -out:sqlite3.lib -machin…...
java库和包的概念
在Java中,"库"和"包"是两个不同的概念,但它们之间存在着密切的关联。 库(Library) 定义:库是一组已经编写好的代码和资源,用于解决特定的问题或提供特定的功能。它可以包含一个或多个…...
mysql内存结构
一:逻辑存储结构:表空间->段->区->页->行、 表空间:一个mysql实例对应多个表空间,用于存储记录,索引等数据。 段:分为数据段,索引段,回滚段。innoDB是索引组织表&…...
Python | Leetcode Python题解之第111题二叉树的最小深度
题目: 题解: class Solution:def minDepth(self, root: TreeNode) -> int:if not root:return 0que collections.deque([(root, 1)])while que:node, depth que.popleft()if not node.left and not node.right:return depthif node.left:que.appen…...
c++二进制输出
输入一个数,输出n个数,数可以是0或1;输入:4输出:0010;提示:本题要用到rand(),srand(time(0));代码如下:#include<bits/stdc.h> #include<windows.h> using namespace s…...
5. C++网络编程-UDP协议的实现
UDP是无连接的。 UDP Server网络编程基本步骤 创建socket,指定使用UDP协议将socket与地址和端口绑定使用recv/send接收/发送数据 由于UDP是无连接的,直接侦听就行使用close关闭连接 这个UDP接收数据的时候用的API是recvfrom,发送数据是sendto 客户端 …...
Altium Designer 中键拖动,滚轮缩放,并修改缩放速度
我的版本是AD19,其他版本应该都一样。 滚轮缩放 首先,要用滚轮缩放,先要调整一下AD 设置,打开Preferences,在Mouse Wheel Configuration 里,把Zoom Main Window 后面Ctrl 上的对勾取消掉,再把…...
python从入门到精通04
一、编写英文月份词典 month_num int(input("请输入您想要查询的月份:")) month_list [January,February,March,April,May,June,July,August,September,October,November,December] print("您查询的月份单词是:", month_list[mon…...
tomcat三级指导
版本 ./catalina.sh linux version.bat win 1.确认是否使用了tomcat管理后台 我们先找到配置文件:tomcat主目录下/conf/server.xml 可以查看到连接端口,默认为8080 然后查看manager-gui管理页面配置文件,是否设置了用户登录 配置文件…...
不知道是该怎么引用多个函数片段?具体示例如代码
🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…...
P3128 [USACO15DEC] Max Flow P题解(树上差分,最近公共祖先,图论)
前言: 题目链接:P3128 [USACO15DEC] Max Flow P - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 讲解: 这一题含金量真算高的,包含了建树(用了图论的知识),求最近公共祖先(倍增法…...
在Linux上面部署ELK
注明:一下的软件需要自己准备 一、准备环境: 1.两台elasticsearch主机4G内存 2.两台elasticsearch配置主机名node1和node2(可以省略) #vim /etc/hostname #reboot 3. 两台elasticsearch配置hosts文件 #vim /etc/hosts 192.168.1.1 node1 192…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
