Java学习笔记------常用API(二)

Object

无有参构造

public Object()     空参构造

成员方法:

public String toString()       返回对象的字符串表示

public boolean  equals(object obj)    比较两个对象是否相等

Object默认用==号比较地址值,需要重写才能比较属性值

protected Object clone(int a)       对象克隆

对象克隆

把a对象的属性值完全拷贝给b对象,也叫对象拷贝,对象复制

深克隆:基本数据类型拷贝过来,字符串复用,引用数据类型会重新创建新的

浅克隆:不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝下来

object中的是浅克隆

深克隆需要重写

浅克隆

import java.util.Arrays;

public class student implements Cloneable{
    private int age;
    private String name;
    private int[] date;

    public student() {
    }

    public student(int age, String name, int[] date) {
        this.age = age;
        this.name = name;
        this.date = date;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return date
     */
    public int[] getDate() {
        return date;
    }

    /**
     * 设置
     * @param date
     */
    public void setDate(int[] date) {
        this.date = date;
    }

    public String toString() {
        return "student{age = " + age + ", name = " + name + ", date = " + Arrays.toString(date) + "}";
    }

    //调用父类的clone,相当于Java帮我们克隆
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
public class Main {
    public static void main(String[] args) throws CloneNotSupportedException{
        int[]date={1,2,3,4,5,6,7};
        student a=new student(15,"hangman",date);
        //浅克隆
        student b=(student)a.clone();
        System.out.println(a);
        System.out.println(b);

    }
}

 

深克隆 

 

import java.util.Arrays;

public class student implements Cloneable{
    private int age;
    private String name;
    private int[] date;

    public student() {
    }

    public student(int age, String name, int[] date) {
        this.age = age;
        this.name = name;
        this.date = date;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return date
     */
    public int[] getDate() {
        return date;
    }

    /**
     * 设置
     * @param date
     */
    public void setDate(int[] date) {
        this.date = date;
    }

    public String toString() {
        return "student{age = " + age + ", name = " + name + ", date = " + Arrays.toString(date) + "}";
    }

    //调用父类的clone,相当于Java帮我们克隆
    @Override
    protected Object clone() throws CloneNotSupportedException {
        int[]date=this.date;
        int[]newdate=new int[date.length];
        for (int i = 0; i < date.length ; i++) {
            newdate[i]=date[i];
        }
        //调用父类克隆方法
        student a=(student)super.clone();
        a.date=newdate;
        return a;
    }
}
public class Main {
    public static void main(String[] args) throws CloneNotSupportedException{
        int[]date={1,2,3,4,5,6,7};
        student a=new student(15,"hangman",date);
        //深克隆
        student b=(student)a.clone();
        int[]arr= a.getDate();
        arr[0]=100;
        System.out.println(a);
        System.out.println(b);

    }
}

 

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

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

相关文章

知识文档管理系统平台:企业管理的王炸

无论是企业内部的文件共享&#xff0c;还是团队之间的协作编辑&#xff0c;知识文档管理系统都能发挥巨大的作用。它帮助企业整理、存储和查找各种文档资料&#xff0c;这不仅能提高企业的工作效率&#xff0c;还能增强企业的竞争力。今天就跟着LookLook同学一起来深入了解知识…

4款好用的AI写作软件推荐,让你成为写作大神

写作已经成为我们日常生活和工作中必不可少的一部分&#xff0c;当我们在还绞尽脑汁的去想如何写作的时候&#xff0c;别人已经弯道超车用上了人工智能写作软件&#xff0c;今天&#xff0c;小编想为大家推荐4款好用的AI写作软件&#xff0c;让你在几秒钟内生成高质量文章的同时…

ADGUARD规则备份

ADGUARD规则备份 文章目录 ADGUARD规则备份使用方法规则 使用方法 规则 123pan.com###app > div.ant-spin-nested-loading.global-loading > div.ant-spin-container > div > div.appdiv.web-wrap > div.banner-container-pc:nth-child(3) bilibili.com###comm…

【Typescript】any和unknown的区别

any----没有任何约束【JavaScript中基本都是 any类型&#xff0c;可随意赋值】 unknow----可以接受任何类型的赋值&#xff0c;但不可以赋值给其他任意类型【除非使用as断言转换】 let o:number[] [1,2,3]// 可接收任何类型 let a:unknown o// 不可传递给其他类型 let x:st…

基于SpringBoot的“实习管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“实习管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 学生注册界面图 后台登录界面图 …

本地mysql5.7以上版本配置及my.ini

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

当页面滚动到指定位置时,底部按钮出现并固定到底部——js基础积累

需求场景&#xff1a; 当页面滚动到指定位置时&#xff0c;底部按钮出现并固定到底部。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><metaname"viewport"content"widthdevice-width, user…

Jetpack Compose 动画正式开始学习

1. 简单值动画 //将一个Color简单值 从一个值 变化到另一个 另一个简单值 就用 animateColorAsStateval backgroundColor by animateColorAsState(if (tabPage TabPage.Home) Purple100 else Green300) 动画其实就是 一个状态不停发生改变导致 组件不断重组产生的过程 2.…

iPhone, Android 手机是如何收到推送通知的?

本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 iPhone, Android 手机是如何收到推送通知的&#xff1f; 我们的手机或电脑是如何收到推送通知的&#xff1f; 通常我们可以使用消息解决方案 Firebase 来支持通知推送。下图显示了 Fi…

刷题DAY21 | LeetCode 530-二叉搜索树的最小绝对差 501-二叉搜索树中的众数 236-二叉树的最近公共祖先

530 二叉搜索树的最小绝对差&#xff08;easy&#xff09; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 思路&#xff1a;双指针法 代码实现&#xff1a; class So…

ArmSoM Rockchip系列产品 通用教程 之 RTC 使用

1. RTC 简介​ RTC&#xff1a;(Real_Time Clock)&#xff1a;实时时钟 HYM8563是一种低功耗实时时钟&#xff08;RTC&#xff09;芯片&#xff0c;用于提供精确的时间和日期信息。它提供一个可编程的时钟输出&#xff0c;一个中断输出和一个掉电检测器&#xff0c;所有的地址…

从零开始,一步步构建服务网格istio

一、环境情况 环境&#xff1a;Ubuntu20.04 机器数量&#xff1a;单机1台 IP&#xff1a;10.9.2.83 二、准备知识 为什么使用 Istio&#xff1f; Istio提供了一种更高级别的服务网格解决方案&#xff0c;它可以简化和加强 Kubernetes 集群中的服务间通信、流量管理、安全…

SpringBoot配置加载顺序和SpringBoot分离打包:将jar包与lib依赖、配置文件分开

文章目录 一、SpringBoot配置加载顺序1.SpringBoot配置优先级&#xff08;1&#xff09;命令行参数&#xff08;2&#xff09;配置文件 二、SpringBoot分离打包&#xff1a;将jar包与lib依赖、配置文件分开1.pom文件配置2.打包后的目录结构 一、SpringBoot配置加载顺序 官方文…

下载文件,无法获取header中的Content-Disposition

问题&#xff1a;axios跨域请求时&#xff0c;无法获取header中的Content-Disposition&#xff0c;并且network中已显示Content-Disposition 在使用CORS方式跨域时&#xff0c;浏览器只会返回默认的头部Header 解决&#xff1a; 后端在返回时&#xff0c;需要设置公开的响应…

C++第三弹---C++入门(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 C入门 1、内联函数 1.1、概念 1.2、特性 2、auto关键字(C11) 2.1、类型别名思考 2.2、auto简介 2.3、auto的使用细则 2.3、auto不能推导的场景 …

Transformer家族

在《Transformer原理》中我们介绍了&#xff0c;现在很多大模型都是基于Transformer&#xff0c;其中最出名就是GPT和BERT模型&#xff0c;在GPT和BERT模型被提出来之后&#xff0c;NLP领域也出现了基于Transformer结构的模型&#xff0c;按照模型结构基本可以分为三类&#xf…

(2022级)成都工业学院Java程序设计(JAVA)实验一:编写一个简单的Java程序

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 1、 控制台菜单。要求如下&#xff1a; 1&#xff09;…

镭速教你如何解决大数据量串行处理的问题

大数据的高效处理成为企业发展的关键。然而&#xff0c;大数据量串行处理的问题常常困扰着许多企业&#xff0c;尤其是在数据传输方面。本文将探讨大数据量串行处理的常见问题&#xff0c;并介绍企业常用的处理方式&#xff0c;最后重点阐述镭速如何提供创新解决方案&#xff0…

手机如何打开mxf视频?怎么把mxf压缩转换成mp4?

在应用商店中下载并安装支持MXF格式的播放器应用&#xff0c;例如VLC媒体播放器、MX播放器等。这些应用通常支持更多的视频格式&#xff0c;并提供更多的播放和管理功能。而MXF文件通常比较大&#xff0c;尤其是对于高分辨率和高质量的视频。可以通过野葱视频转换器将MXF压缩转…

中国人工心脏五年风云录:谁主沉浮?

在生命的长河中&#xff0c;有些时刻会永远铭记。对于李先生来说&#xff0c;那个转折点是在2019年&#xff0c;当他被诊断为终末期心衰患者&#xff0c;生命进入了倒计时。然而&#xff0c;随着中国人工心脏技术的飞速发展&#xff0c;李先生的命运得以改写。 心衰&#xff0…