java中的数据模型类
package com.aaa.zxf.ajax.test; import java.io.Serializable; /**
* java中的继承。
*
* 一、数据模型类
* 数据模型类:用来存取数据库数据对应的java类
* 理解成:需要将先有的类完善成标准的数据模型类
*
*
* 二、访问控制修饰符
*
* public : 公共的。 对所有类可见(在同一个工程中 任何类都可以调用)。使用对象:类、接口、成员变量、方法
* protected : (包权限和继承权限 )对同一包内的类或所有子类可见。使用对象:成员变量、方法。 注意:不能修饰类(外部类)。包权限指的使 即使没有关系但是在同一个包中 可以访问 继承权限指的是 即使不在同一个包中但是有继承关系 依然可以访问
* default (即缺省,什么也不写): 包权限 在同一包内可见,不使用任何修饰符。使用对象:类、接口、成员变量、方法。 注意 什么都不写并不代表没有权限修饰符 而是代表默认的权限修饰
* private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
*
* 我们可以可以通过以下表来说明访问权限:
* 访问控制
* 修饰符 当前类 同一包内 子孙类 其他包
* public Y Y Y Y
* protected Y Y Y N
* default Y Y N N
* private Y N N N
*
*/
public class JavaJiCheng {
public static void main(String[] args) { People p = new People();
// p.age = -45; // age -45? 如何解决? 给age 设置 set方法 进行基本的判断。。
//
// p.name = "haha";
// System.out.println("name="+p.name+" age="+p.age ); /**
* 通过set 赋值
* get 获得
*/
People p1 = new People();
p1.setAge(45);
p1.setName("xixi"); int age = p1.getAge(); }
} //1.创建一个数据模型类
class People{
private int age;
private String name; /**
* 我们希望 有了set方法之后 就不要使用 打点调用的形式了。
* 解决方案:将成员变量的权限修饰符设定为 私有的。
*/
void setAge(int age){
// 三元运算符 不大于0 就将age 赋值为0
this.age = age>0 ? age :0;
} void setName(String name){
this.name = name;
} /**
* 解决私有属性无法调用的问题
*
* 建立一个 get方法
*/
public int getAge(){
return age;
} public String getName(){
return name;
} } //数据模型类最终版 class Book implements Serializable { private int bookid;
private String bookname;
private double price;
private String autor; public Book() {
} public Book(int bookid, String bookname, double price, String autor) {
this.bookid = bookid;
this.bookname = bookname;
this.price = price;
this.autor = autor;
} public int getBookid() {
return bookid;
} public void setBookid(int bookid) {
this.bookid = bookid;
} public String getBookname() {
return bookname;
} public void setBookname(String bookname) {
this.bookname = bookname;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
} public String getAutor() {
return autor;
} public void setAutor(String autor) {
this.autor = autor;
} @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false; Book book = (Book) o; if (bookid != book.bookid) return false;
if (Double.compare(book.price, price) != 0) return false;
if (bookname != null ? !bookname.equals(book.bookname) : book.bookname != null) return false;
return autor != null ? autor.equals(book.autor) : book.autor == null; } @Override
public int hashCode() {
int result;
long temp;
result = bookid;
result = 31 * result + (bookname != null ? bookname.hashCode() : 0);
temp = Double.doubleToLongBits(price);
result = 31 * result + (int) (temp ^ (temp >>> 32));
result = 31 * result + (autor != null ? autor.hashCode() : 0);
return result;
} @Override
public String toString() {
return "Book{" +
"bookid=" + bookid +
", bookname='" + bookname + '\'' +
", price=" + price +
", autor='" + autor + '\'' +
'}';
}
}
java中的数据模型类的更多相关文章
- 带有静态方法的类(java中的math类)
带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...
- java中的File类
File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
- Java基础(43):Java中的Object类与其方法(转)
Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...
- java中基于TaskEngine类封装实现定时任务
主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...
- Java中的Unsafe类111
1.Unsafe类介绍 Unsafe类是在sun.misc包下,不属于Java标准.但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty.Hadoo ...
- Java中遍历实体类(处理MongoDB)
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...
- java中遍历实体类,获取属性名和属性值
方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for ...
- Java中的BigDecimal类精度问题
bigdecimal 能保证精度的原理是:BigDecimal的解决方案就是,不使用二进制,而是使用十进制(BigInteger)+小数点位置(scale)来表示小数,就是把所有的小数变成整数,记录小 ...
- java 中常用的类
java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l static double abs(double a) 获取double 的绝对值 l sta ...
随机推荐
- 【LeetCode】309. Best Time to Buy and Sell Stock with Cooldown 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetc ...
- 【LeetCode】880. Decoded String at Index 解题报告(Python)
[LeetCode]880. Decoded String at Index 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博 ...
- 【LeetCode】767. Reorganize String 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.me/ 题目地址:https://leetcode.com/problems/reorganiz ...
- 【剑指Offer】按之字形顺序打印二叉树 解题报告(Python)
[剑指Offer]按之字形顺序打印二叉树 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- Lucky7(hdu5768)
Lucky7 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- Codeforces A. Orchestra
A. Orchestra time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令
目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...
- 为什么别人的 WordPress 网站那么快?
越来越多的人使用 WordPress 来搭建网站了,W3techs 最新数据统计显示[1],截止到2021年11月3日,全网有43.0%的网站都是基于WordPress 搭建的.那么问题来了,为什么别 ...
- pymysql防止SQL注入的方法
import pymysql class Db(object): def __init__(self): self.conn = pymysql.connect(host="192.168. ...
- Java的jar包构建成docker镜像并运行
结构如下 把jar和Dockerfile放到一个文件,不在一个文件下会报错文件找不到 创建一个构建文件 buildimage.sh vi /home/hanby/buildimage.sh echo ...