PTA 网络报文(java函数)

报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。通常报文中包含通讯协议、通讯内容等信息。

现定义一个报文类Message用于模拟网络报文,其包含属性protoString类型)表示报文的通讯协议、属性psdString类型)表示报文内容,现需要您重写Object类的equalstoString方法,具体要求:
(1)equals方法:当两个Message对象的protopsd均相同时,表示同一个报文返回true,否则返回false
(2)toString方法:返回字符串,形式为“<当前对象的proto字符串>当前对象的psd字符串”,例如proto为tcp,psd为abcdefg,则返回“<tcp>abcdefg”。

裁判测试程序样例:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Message m1 = new Message(scanner.next(),scanner.next());
        Message m2 = new Message(scanner.next(),scanner.next());
        if(m1.equals(m2))
            System.out.println(m1+" | "+m2+" equals!");
        else
            System.out.println(m1+" | "+m2+" not equals!");
        scanner.close();
    }
}

/* 请在这里填写答案 */

输入样例:

tcp abcptaahello
tcp abcptaahello

输入样例解释:

输入两行,每行两个内容用空格间隔,分别表示同学协议和报文内容。

输出样例:

<tcp>abcptaahello | <tcp>abcptaahello equals!

思路:把数据类型写出来,再重写两个方法

参考代码+注释如下:

class Message {
    private String proto;
    private String psd;
  
    // 构造函数
    public Message(String proto, String psd) {
        this.proto = proto;
        this.psd = psd;
    }
    // 重写 equals 方法
    public boolean equals(Object obj) {
        if (this == obj) 
            return true;
        //判断obj与this类的是否为同一类的实例
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        //检查this的proto字段和psd字段与message对象相应字段的内容是否相等
        Message message = (Message) obj;
        return proto.equals(message.proto) && psd.equals(message.psd);
    }
  
    // 重写 toString 方法
    public String toString() {
        return "<" + proto + ">" + psd;
    }
}

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java中,构造函数是一个特殊的方法,用于创建和初始化一个对象。可以使用构造函数来指定对象的初始状态,为其成员变量赋初值,并执行一些必要的操作。 在ptajava2学生中,构造函数可以用来初始化学生对象的属性。通常情况下,一个学生对象应该具有姓名、年龄、性别等基本信息。 构造函数的定义通常与的名称相同,没有返回类型,并且在创建对象时自动调用。在学生的构造函数中,我们可以传递参数来设置学生的姓名、年龄和性别,以便在对象创建时将其赋值给相应的属性。 例如,定义一个名为Student的,可以定义一个构造函数如下: public class Student { private String name; // 学生姓名 private int age; // 学生年龄 private String gender; // 学生性别 // 构造函数 public Student(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } // 其他成员方法 // ... } 在上面的代码中,我们在Student中定义了一个构造函数,它接受三个参数:name、age和gender,并将它们分别赋值给对应的成员变量。这样,在创建学生对象时,可以通过调用构造函数并传入相应的参数来初始化该对象的属性。 例如,可以使用以下代码创建一个名为"张三"、年龄为18岁、性别为"男"的学生对象: Student student = new Student("张三", 18, "男"); 通过构造函数,我们可以在创建对象时方便地设置学生的初始属性,使得对象的创建和初始化过程更加简洁和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值