java练习题之常用类Object类,包装类

常用类

应用知识点:

Object类

  • 包装类

习题:

1:(Object 类)仔细阅读以下代码,写出程序运行的结果;并简述 == 和 equals 的区别。

 

true

false

==是判断两个变量或实例是不是指向同一个内存空间。 比较两个引用类型的地址,基本类型比值

 "equals"是判断两个变量或实例所指向的内存空间的值是不是相同。

2:(包装类)以下包装类的类名正确的是(ABDEFH)

A. Byte

B. Short

C. Int

D. Long

E. Float

F. Double

G. Char

H. Boolean

3:(包装类)下面关于数据类型之间的转换正确的是()

Integer i = 5 ;

int a = new Integer(12);

Integer i2 = 20 + “”;

String s = true+””;

4:(Object 类)仔细阅读以下代码,写出程序运行的结果。

null  0

name Tom age 18

5: (包装类)仔细阅读以下代码,写出程序运行打印输出的结果;并解释每个结果的原因

true     itn类型比较值,常量缓存区最大数为127  所以不相等

false    new对象 创建新空间

false    new对象 创建新空间   ==比较的是引用

6: 为什么要重写toString()方法?

该方法不重写就默认返回对象的地址,实际中我们需要返回的是对象的内容

7: 为什么要重写equals()方法?

该方法默认比较对象地址,但是在开发过程中,某些情况下需要比较双方内容,所以需要提供重写

8: 定义平面内点的类Point,属性有横坐标和纵坐标。

① 每个属性都使用private修饰,为每个属性设置setter和getter方法。

② 设置无参的构造方法

③ 设置有参的构造方法Point(int x,int y)

④ 设置有参的构造方法Point(Point p)

⑤ 重写toString()方法,用于输出坐标点的信息

⑥ 重写euqals()方法,用于对两个坐标点进行比较

⑦ 创建两个对象,判断对象坐标是否相同。

package com.by.homework1;

public class Point {
    private String x;
    private String y;

    public Point() {
    }

    public Point(String x, String y) {
        this.x = x;
        this.y = y;
    }
    public Point (Point p){
    }

    public String getX() {
        return x;
    }

    public void setX(String x) {
        this.x = x;
    }

    public String getY() {
        return y;
    }

    public void setY(String y) {
        this.y = y;
    }
    public String toString(){
        return "横坐标:"+x+",纵坐标"+y;
    }
    public boolean equals(Object o){
        if(this==o){
            return true;
        }
        if(this.getClass()!=o.getClass()||o.getClass()==null){
            return false;
        }
        Point p=(Point) o;
        return this.x.equals(p.x)&&this.y.equals(p.y);
    }
}





package com.by.homework1;

public class PointTest {
    public static void main(String[] args) {
        Point p1=new Point("1","2");
        Point p2=new Point("1","2");
        if (p1.equals(p2)){
            System.out.println("坐标相等");
        }else {
            System.out.println("坐标不等");
        }
    }
}

9:  定义一个person类,要求如下:

    ① 属性:身份证号,姓名,性别,年龄,户籍,出生日期(String类型,"1998-09-09")

② 属性私有化,提供get/set,构造方法

    ③ 介绍格式:(toString)

   姓名+户籍+年龄

    ④ 提供对象比较equals方法,只要身份证号+姓名相同就认为对象相等

    ⑤ 写一个测试类,定义一个Person数组,创建多个Person对象存储在数组中,

   i.  打印输出所有Person对象的信息

   ii. 用控制台输入一个Person信息:

 例如:"370828199902145066"-"刘航"-'男'-58-北京-"1955/01/01"

       判断数组中是否存在和此对象相等的对象(身份证号+姓名相同就认为对象相等)

package com.by.homework1;

public class Person {
    private String idCard;
    private String name;
    private String sex;
    private int age;
    private String location;
    private String birthday;

    public Person() {
    }

    public Person(String idCard, String name, String sex, int age, String location, String birthday) {
        this.idCard = idCard;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.location = location;
        this.birthday = birthday;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    public String toString(){
        return "姓名:"+name+",户籍:"+location+",年龄:"+age;
    }
    public boolean equals(Object o){
        if(this==o){
            return true;
        }
        if (this.getClass()!=o.getClass()||o.getClass()==null){
            return false;
        }
        Person person=(Person) o;
        return this.idCard.equals(person.idCard)&&this.name.equals(person.name);
    }
}







package com.by.homework1;

import java.util.Scanner;

public class PersonTest {
    public static void main(String[] args) {
        Person []people={new Person("1307262000","张三","男",18,"河北省","2000-01-01"),
                new Person("1307262001","李四","女",19,"河南省","2000-02-01"),
                new Person("1307262002","王五","男",20,"湖北省","2000-03-01")};
        for (int i = 0; i < people.length; i++) {
            System.out.println(people[i]);
        }
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入身份证号");
        String idCard=sc.next();
        System.out.println("请输入姓名");
        String name=sc.next();
        System.out.println("请输入性别");
        String sex=sc.next();
        System.out.println("请输入年龄");
        int age=sc.nextInt();
        System.out.println("请输入籍贯");
        String location=sc.next();
        System.out.println("请输入出生日期");
        String birthday=sc.next();
        Person person=new Person(idCard,name,sex,age,location,birthday);
        boolean boo=false;
        for (int i = 0; i < people.length; i++) {
            if(person.equals(people[i])){
                System.out.println("相等的为:"+people[i]);
                boo=true;
            }
        }
        if(!boo){
            System.out.println("没有相等的");
        }
    }
}

姓名:张三,户籍:河北省,年龄:18

姓名:李四,户籍:河南省,年龄:19

姓名:王五,户籍:湖北省,年龄:20

请输入身份证号

1307262000

请输入姓名

张三

请输入性别

asd

请输入年龄

12

请输入籍贯

123

请输入出生日期

213

相等的为:姓名:张三,户籍:河北省,年龄:18

Process finished with exit code 0

10: (Object 类)仔细阅读以下代码,写出程序运行的结果。

     

     

true

false

11: (Object 类)仔细阅读以下代码,//1 处填入哪些代码可以编译通过()

         

      A stu1 +  “  ” + 100 B. 100 + “ ” + stu1

     C“ ” + 100  + stu1 D. stu1 + 100 + “ ”这个不是String环境,加字符串才会认为是String 默认调用     toString方法    

12:(Object 类)在 Object 类中,定义的 finalize 方法在    当内存满到不足以创建对象         时调用;toString 方法返回值表示    对象的地址空间       ; equals 方法的作用为   比较两个对象的内容是否相同           ; getClass 方法作用为       获取类对象地址         

13: (Object 类)编程:定义一个用户类(User 类),属性有用户名、用户密码 password、电话(tel),

要求如下:

对类进行封装,提供 get/set 方法;

同时提供无参数、有参数的构造方法

覆盖toString 方法,要求格式为:

username:一如既往,password:123456,tel:13051800688

覆盖 equals 方法,要求:只要用户名相同则为相同对象

写一个测试类,利用键盘分别输入两个用户信息并存储 Use 对象中,判断两个对象是否相同。

package com.by.homework1;

public class User {
    private String user;
    private String password;
    private String tel;

    public User() {
    }

    public User(String user, String password, String tel) {
        this.user = user;
        this.password = password;
        this.tel = tel;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
    public String toString(){
        return "username:"+user+",password:"+password+",tel:"+tel;
    }
    public boolean equals(Object o){
        if(this==o){
            return true;
        }
        if(this.getClass()!=o.getClass()||o.getClass()==null){
            return false;
        }
        User user1=(User) o;
        return this.user.equals(user1.user);
    }
}



package com.by.homework1;

public class UserTest {
    public static void main(String[] args) {
        User []users={new User("haha","123","123"),
                new User("haha","234","234")};
        if (users[0].equals(users[1])){
            System.out.println("相等:"+users[0]+users[1]);
        }
    }
}

14:(toString 方法,equals 方法)写出Object 类中toString 方法的签名, 以及equals 方法的签名

     public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

这个方法返回对象的字符串表示。默认实现是返回对象的类名和哈希码的十六进制表示,通常这对于调试和日志记录是有用的。但是,通常我们会覆盖这个方法以提供更有意义的字符串表示。

public boolean equals(Object obj) {
    return (this == obj);
}

这个方法用于比较两个对象是否相等。默认实现是比较对象的内存地址,也就是说,只有当两个引用指向同一个对象时,才会返回true。但是,通常我们会覆盖这个方法以提供更符合我们需要的比较逻辑。

15:(toString 方法)写出下列代码的运行结果

null

name Tom age 18

   

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

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

相关文章

声明式管理方法

声明式管理方法&#xff08;yaml&#xff09;文件&#xff1a; 1&#xff0c;适合对资源的修改操作 2&#xff0c;声明式管理依赖于yaml文件&#xff0c;所有的内容都在yamI文件当中 3&#xff0c;编辑好的yaml文件&#xff0c;还是要依靠陈述式命令发布到k8s集群当中 发布的…

Spring见解 1

1.Spring概述 1.1.Spring介绍 ​ Spring是轻量级Java EE应用开源框架&#xff08;官网&#xff1a; http://spring.io/ &#xff09;&#xff0c;它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面&#xff1f; IOC 解决传统Web开发中…

SpringBoot—支付—微信

一、支付流程 1.1、支付准备 1.获取商户号 微信商户平台 申请成为商户 > 提交资料 > 签署协议 > 获取商户号 2.获取 AppID 微信公众平台 注册服务号 > 服务号认证 > 获取APPID > 绑定商户号 3.申请商户证书 登录商户平台 > 选择 账户中心 > 安全…

Kali Linux实现UEFI和传统BIOS(Legacy)引导启动

默认Kali linux安装会根据当前启动的引导模式进行安装 例:以UEFI引导启动安装程序,安装后仅能在UEFI引导模式下进入系统 安装Kali系统 这边基于VirtualBox虚拟机镜像实战操作 首先创建一个Kali虚拟机 这里需要注意,把启动 EFI (只针对某些操作系统)选项勾选上,内存、处理器…

I.MX6ULL_Linux_驱动篇(52)linux CAN驱动

CAN 是目前应用非常广泛的现场总线之一&#xff0c;主要应用于汽车电子和工业领域&#xff0c;尤其是汽车领域&#xff0c;汽车上大量的传感器与模块都是通过 CAN 总线连接起来的。 CAN 总线目前是自动化领域发展的热点技术之一&#xff0c;由于其高可靠性&#xff0c; CAN 总线…

酷雷曼精彩亮相CMC 2023中国元宇宙大会,助力云上VR直播

12月23日&#xff0c;2023中关村论坛系列活动——CMC 2023中国元宇宙大会在石景山首钢园冰壶馆成功举办。酷雷曼VR作为元宇宙领域代表企业之一受邀出席会议&#xff0c;分享元宇宙技术研发成果及应用方案&#xff0c;并为大会提供VR直播技术支持。 大咖云集&#xff0c;共商元宇…

数据库进阶教学——主从复制(Ubuntu22.04主+Win10从)

目录 一、概述 二、原理 三、搭建 1、备份数据 2、主库配置Ubuntu22.04 2.1、设置阿里云服务器安全组 2.2、修改配置文件 /etc/my.cnf 2.3、重启MySQL服务 2.4、登录mysql&#xff0c;创建远程连接的账号&#xff0c;并授予主从复制权限 2.5、通过指令&#xff0c;查…

进程终结之道:kill与pskill的神奇战斗

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 进程终结之道&#xff1a;kill与pskill的神奇战斗 前言基本用法kill命令&#xff1a;基础语法&#xff1a;选项&#xff1a;示例&#xff1a; pskill命令&#xff1a;基础语法&#xff1a;选项&#x…

kbdnecnt.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复?

不少人都在问“kbdnecnt.DLL文件”是什么&#xff1f;为什么电脑总是报错提示说“kbdnecnt.DLL文件缺失&#xff0c;软件无法启动”&#xff1f; 首先&#xff0c;先来了解“kbdnecnt.DLL文件”是什么&#xff1f; kbdnecnt.DLL是Windows操作系统中的一个动态链接库文件&#…

JOSEF约瑟 断电延时继电器 SRTD-220VDC-2H2D 导轨安装

系列型号&#xff1a; SRTD-24VDC-1H1D断电延时继电器&#xff1b;SRTD-110VDC-1H1D断电延时继电器&#xff1b; SRTD-220VDC-1H1D断电延时继电器&#xff1b;SRTD-110VAC-1H1D断电延时继电器&#xff1b; SRTD-220VAC-1H1D断电延时继电器&#xff1b;SRTD-24VDC-2H断电延时继电…

考PMP真的有用吗?看完立马不犹豫了!

其实我个人觉得在你考证之前&#xff0c;值得反思的是&#xff1a;为什么要考这个证书&#xff1f;是因为公司需要&#xff1f;个人职业发展&#xff1f;还是受到新闻报道或广告的影响&#xff0c;觉得PMP证书有价值&#xff0c;只是想了解一下。这样就会导致很多人会说&#x…

golang并发编程-channel

在golang 并发编程里&#xff0c;经常会听到一句话&#xff1a;不要通过共享内存进行通信&#xff0c;通过通信来共享内存。下面我们会介绍下channel, 通过源码的方式去了解channel是怎么工作的。 基本结构 流程图 代码解读 type hchan struct {qcount uint // …

HubSpot邮件营销好用吗?

HubSpot的邮件营销工具通常被认为是非常强大和易用的&#xff0c;但用户的体验和满意度会因个人需求和经验而异。以下是一些通常与HubSpot邮件营销工具相关的优势&#xff1a; 全面的功能&#xff1a; HubSpot的邮件营销工具提供了丰富的功能&#xff0c;包括电子邮件自动化、…

西门子消防主机电源维修控制器BCB8005

火灾自动报警部分主要由各个部位的火灾探测器及手动报警按钮、消火栓按钮等设备组成。火灾探测器就如同火灾报警系统的“眼睛”,通过各自的火灾探测器采集现场的火警信号&#xff0c;实时传送给火灾报警控制器&#xff0c;火灾报警控制器进行各种智能的分析判断后发出火灾报警&…

【力扣题解】P700-二叉搜索树中的搜索-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P700-二叉搜索树中的搜索-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f…

Python 从入门到精通之通俗易懂学闭包

系列 Python从入门到精通之安装与快速入门-CSDN博客 Python从入门到精通之基本数据类型和变量-CSDN博客 Python从入门到精通之集合&#xff08;List列表、Tuple元组、Dict字典、Set&#xff09;-CSDN博客 Python从入门到精通之条件语句、循环语句和函数-CSDN博客 Python从…

【双指针算法】-- 左右指针

左右指针 前言一、双指针算法二、左右指针1.用于在已排序数组中找到两个数使其和为特定值2.在字符串中判断是否为回文 总结 前言 今天在刷Leetcode的时候觉得自己双指针掌握的还是不错的记录一下,写个学习笔记,也方便以后翻阅,如果也帮助到你了,那真是太好啦! 本篇介绍的是左右…

八大算法排序@希尔排序(C语言版本)

目录 希尔排序概念算法思想示例分析结论算法步骤选择增量序列按增量分组逐步缩小增量 算法优势 代码实现核心算法希尔排序代码实现&#xff1a; 时间复杂度空间复杂度特性总结 该排序会关联到直接插入排序的知识点&#xff0c;如果对于直接插入排序还有所疑惑&#xff0c;可以跳…

Stable Diffusion模型概述

Stable Diffusion 1. Stable Diffusion能做什么&#xff1f;2. 扩散模型2.1 正向扩散2.2 反向扩散 3. 训练如何进行3.1 反向扩散3.2 Stable Diffusion模型3.3 潜在扩散模型3.4 变分自动编码器3.5 图像分辨率3.6 图像放大 4. 为什么潜在空间是可能的&#xff1f;4.1 在潜在空间中…

uniapp:签字版、绘画板 插件l-signature

官方网站&#xff1a;LimeUi - 多端uniapp组件库 使用步骤&#xff1a; 1、首先从插件市场将代码下载到项目 海报画板 - DCloud 插件市场 2、下载后&#xff0c;在项目中的uni_modules目录 3、最后 没有其它步骤&#xff0c;直接官网代码复制到vue文件中就可以了&#xff0c…