编写一个Student类,包含name和age属性,提供有参构造方法

这篇具有很好参考价值的文章主要介绍了编写一个Student类,包含name和age属性,提供有参构造方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2. 请按照下列要求编写程序。

1 编写一个Student类,包含nameage属性,提供有参构造方法。

2 Student类中,重写toString()方法,输出agename的值。

3 Student类中,重写hashCode()equals()方法

  1. hashCode()的返回值是namehash值与age的和。
  2. equals()判断对象的nameage是否相同,相同则返回true不同返回false

4)最后编写一个测试类,创建一个HashSet<Student>对象hs,向hs中添加多个Student对象,假设有两个Student对象相等,输出HashSet

import java.util.HashSet;
import java.util.Iterator;
import java.util.Objects;

public class Student {
    public String name;
     public int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return age == student.age &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name)+age;
    }
}

class TestStudent{
    public static void main(String[] args) {
    Student stu=new Student("曹操",12);
    Student stu1=new Student("刘备",19);
    Student stu2=new Student("孙策",17);
    Student stu3=new Student("孙斌",18);
    Student stu4=new Student("孙斌",18);

    HashSet<Student> hs=new HashSet<>();
        hs.add(stu1);
        hs.add(stu2);
        hs.add(stu3);
        hs.add(stu4);
        hs.add(stu);
System.out.println(hs);
        Iterator it=hs.iterator();
        while (it.hasNext()){

            System.out.println(it.next());
        }

        for (Object i:hs
             ) {
            System.out.println(i);
        }

    }
}

,观察是否添加成功。文章来源地址https://www.toymoban.com/news/detail-516740.html

到了这里,关于编写一个Student类,包含name和age属性,提供有参构造方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight

    编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。最后,写一个测试类来测

    2024年02月04日
    浏览(35)
  • 编写一个类为Rectangle。该类有两个属性: 长(length)和宽(width),计算矩形面积周长。写另外一个类,来检验自己编写的类中的方法是否正确。

    编写一个类为Rectangle. 该类有两个属性: 长(length)和宽(width)默认值为1,该两个变量为私有的,即private. 其它方法为: 构造方法:public Rectangle();   Public Rentangle(double length, double width); 方法: 矩形对象调用该方法,可以得到面积:public double getArea() 矩形对象调用该方法,可以

    2024年02月05日
    浏览(34)
  • HTML 元素中的name 属性

    name 属性是 HTML 元素中常用的属性之一。它用于指定表单元素的名称,以便在提交表单时将其值与对应的键关联起来。 每个表单元素(例如 input 、 select 和 textarea )都可以具有一个 name 属性,该属性为元素提供一个唯一的标识符。当用户在提交表单时,浏览器会将表单元素的

    2024年02月13日
    浏览(33)
  • related_name和related_query_name属性

    在Django模型继承中,假如在外键或多对多字段中使用了related_name属性或related_query_name属性,则必须为该字段提供一个独一无二的反向名字和查询名字。但是,这样在抽象基类中一般会引发问题,因为基类中的字段都被子类继承并且保持了同样的值,这其中当然也包括related_n

    2024年04月29日
    浏览(27)
  • meta标签name=“referrer“属性的写法和用法

    HTMLmeta标签name=\\\"referrer\\\"属性主要用于控制网页发送给服务器的referrer信息,可以告诉服务器端用户是从哪个页面来到当前网页的。 什么是referrer? referrer有“引用页面”或“来源页面”的意思,用来指定当前页面是从哪个页面跳转过来的,也就是说HTTP请求报头中的referrer包含了

    2024年02月10日
    浏览(30)
  • 常见的 HTML<meta> 标签的 name 属性及其作用

    HTML中的 meta 标签可以通过 name 属性提供元数据,这些元数据可以用于指定有关文档的信息,以及控制浏览器和搜索引擎的行为。 name 属性通常与其他属性一起使用,如 content 、 charset 、 http-equiv 等,以提供更具体的元数据信息。 以下是一些常见的 meta 标签的 name 属性及其作

    2024年02月11日
    浏览(33)
  • JS判断对象、数组是否包含某个属性、某个值

    可以使用以下几种方法来判断对象是否包含某个属性: 1. in 操作符: 使用 in 操作符可以检查对象是否包含指定的属性。它会检查对象及其原型链上的所有属性。 2. hasOwnProperty() 方法: hasOwnProperty() 是对象的内置方法,用于检查对象自身是否具有指定的属性(不包括原型链上

    2024年02月09日
    浏览(45)
  • vue前端开发自学,插槽练习第二次,name属性的使用

    vue前端开发自学,插槽练习第二次,name属性的使用!可以使用name属性,来自定义一个名字,这样,就可以在一个组件内同时出现多个插槽的内容了。在子组件内接收的时候,很简答,只需要在slot标签里面加上name=“mz”; 下面看代码。 这个内容是app.vue入口文件的内容源码。下面

    2024年02月02日
    浏览(44)
  • 项目通用Makefile的编写(包含Makefile.build文件分析)

    下面分析的工程和Makefile是图片解码播放器项目的,具体可参考博客:《从零开始用C语言实现图片解码播放器(有源码)》; (1)首先执行./build/目录下的Makefile文件(主Makefile),然后会跳转到各个子目录下面去编译源码,将子目录下的源码都编译成build-in.o文件; (2)将各个子目录下

    2023年04月08日
    浏览(18)
  • element中表格组件的row-class-name和class-name属性的使用以及无效处理

    1.这两个属性的使用,row-class-name用在el-table标签上,class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 2.绑定函数时就可以通过条件来决定哪行需要添加样式 3.样式无效处理 样式没有效果的原因在于添加的样式不是全局样式,所以只需要将scoped去除或者自

    2024年01月20日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包