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
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值