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

news2024/9/23 14:35:24

常用类

应用知识点:

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.coloradmin.cn/o/1353515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何做好档案数字化前的鉴定工作

要做好档案数字化前的鉴定工作&#xff0c;可以按照以下步骤进行&#xff1a; 1. 确定鉴定目标&#xff1a;明确要鉴定的档案的内容、数量和性质&#xff0c;确定鉴定的范围和目标。 2. 进行档案清点&#xff1a;对档案进行全面清点和登记&#xff0c;包括数量、种类、状况等信…

鸿蒙HarmonyOs学习:如何添页面和路由

1.目录结构 重点我们开发中需要用到地方我都做了简单的说明。 2.我们看看入口页面是如何配置的 在主配置文件module.json5中配置Ability路径已经应用图标和应用名称等信息。 3.配置页面路由 这个路由是由哪儿配置的呢&#xff1f; 想必看完这些&#xff0c;你应该知道一个鸿…

算法练习Day23 (Leetcode/Python-回溯算法)

46. Permutations Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order. Example 1: Input: nums [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]思路&#xff1a;此题可用回溯…

C#中使用正则表达式实现汉字转拼音

目录 一、正则表达式基础 二、实例 1.程序入口Form1.cs 2.类库PinYin.cs 三、生成效果 四、实例中的知识点 1.Regex 2.ToCharArray() 3.Regex.IsMatch 方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;重载 &#xff08;3&#xff09;IsMatch(Stri…

人工智能AI与3D视觉技术的结合正在引领新一代移动机器人的革新

随着科技的飞速发展&#xff0c;人工智能AI与3D视觉技术的结合正在引领新一代移动机器人的革新。富唯智能移动机器人&#xff0c;以其独特的3D视觉技术&#xff0c;赋予了移动机器人一双“智慧之眼”&#xff0c;从而为现代工业自动化带来了前所未有的突破。 富唯智能移动机器…

湖南大学-算法设计与分析-2023期末考试【原题】

前言 21&#xff1a;00刚刚结束的考试&#xff0c;凭着回忆把题目重现出来了&#xff0c;在复习的时候根本找不到往年的试卷&#xff0c;希望这张回忆的试卷能帮助到下一届的同学。知道题目基本上就能做出来了&#xff0c;但是不知道是真的做不出来&#xff0c;我就不给答案了…

解析一次get请求后台解码中文乱码的问题

今日遇到一个项目组中个人独有的bug&#xff0c;系统输入中文搜索内容搜不出来&#xff0c;组员都可以&#xff0c;从前台查到后台&#xff0c;发现前端的获取值和传递值都没什么问题&#xff0c;到了后台&#xff0c;接收的中文参数直接是个乱码&#xff0c;但是想到之前也有传…

跨站脚本攻击漏洞XSS绕过22种方式总结

XSS漏洞简介 跨站脚本攻击在目前这个时间节点还是属于一个排位比较高的漏洞&#xff0c;在OWASP TOP10 2021中隶属于注入型漏洞&#xff0c;高居TOP3的排位&#xff0c;可见这个漏洞的普遍性。跨站脚本攻击的学习中我们主要需要明白的是跨站的含义&#xff0c;以及XSS的核心。…

YOLO+SlowFast+DeepSORT 简单实现视频行为识别

前言 前段时间刷短视频看到过别人用摄像头自动化监控员工上班状态&#xff0c;比如标注员工是不是离开了工位&#xff0c;在位置上是不是摸鱼。虽然是段子&#xff0c;但是这个是可以用识别技术实现一下&#xff0c;于是我在网上找&#xff0c;知道发现了 SlowFast&#xff0c…

模拟Spring事件监听机制

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 之前我们一起学习了Spr…

polar CTF 简单rce

一、题目 <?php /*PolarD&N CTF*/ highlight_file(__FILE__); function no($txt){if(!preg_match("/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen| /i", $txt)){return $txt;}else{ die("whats up");}} $yyds(…

向日葵远程控制软件MySQL5.7的安装与配置

目录 一. 向日葵远程控制软件 1.1 简介 1.2 选择原因 1.3 安装及使用 1.4 使用场景 二. MySQL5.7 安装与配置 2.1 什么是MySQL 2.2 安装 MySQL5.7 2.2.1 安装步骤 2.2.2 内部连接 2.2.3 外部连接 三. 思维导图 一. 向日葵远程控制软件 1.1 简介 向日葵电脑版是一款拥有多年…

SpringCloudAlibaba之Gateway

1、简介 网关是系统唯一对外的入口&#xff0c;介于客户端与服务器端之间&#xff0c;用于对请求进行鉴权、限流、路由、监控等功能。 2、Gateway主要功能 2.1、route 路由 路由是网关的最基本组成&#xff0c;由一个路由 id、一个目标地址 url&#xff0c;一组断言工厂及一…

掌握静态S5:从入门到精通的指南

在现今的数据驱动时代&#xff0c;静态S5作为一款强大的数据分析工具&#xff0c;越来越受到各行各业的青睐。然而&#xff0c;如何从入门到精通&#xff0c;全面掌握静态S5的各项功能&#xff0c;成为了许多用户面临的挑战。本文将为你提供一份详尽的指南&#xff0c;助你顺利…

Lingo 17安装包下载及安装教程

Lingo 17下载链接&#xff1a;https://docs.qq.com/doc/DUndEVXd4WVVweGFR 1.鼠标右键解压到“Lingo 17.0” 2.双击打开【Setup】文件夹 3.选中Lingo 17.0&#xff0c;鼠标右键选择“以管理员身份运行” 4.点击“Next” 5.选中I accept the terms in the license agreement&…

【C程序设计】C循环

有的时候&#xff0c;我们可能需要多次执行同一块代码。一般情况下&#xff0c;语句是按顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个…

Python 热力图的绘制(Matplotlib篇-12)

Python 热力图的绘制(Matplotlib篇-12)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

陆面过程模式CLM、地球系统模式CESM安装及快速运行

目录 专题一 CESM、CLM运行条件及Linux编译基础 专题二 CESM、CLM基础 专题三 CLM程序获取、结构及其功能 专题四 CLM移植、安装及快速运行 专题五 CLM配置选项及数据文件制备 专题六 CLM单点或区域运行 专题七 CLM结果处理、分析及可视化 专题八 CLM代码修改、发展及改…

二、UI文件设计与运行机制

一、UI文件设计与运行机制 1、创建工程 2、添加控件&#xff0c;实现按钮点击 &#xff08;1&#xff09;添加控件 &#xff08;2&#xff09;添加信号和槽 2、分析项目结构 test_02test_02.pro Qt工程文件Headerswidget.h 设计的窗体类的头文件Sourcesmain.cpp 主程序入…

diffusers 源码待理解之处

一、训练DreamBooth时&#xff0c;相关代码的细节小计 ** class_labels timesteps 时&#xff0c;模型的前向传播怎么走&#xff1f;待深入去看 ** 利用class_prompt去生成数据&#xff0c;而不是instance_prompt class DreamBoothDataset(Dataset):"""A dat…