Java学习笔记day09_05_使用重写技术编写自己的MyString类

Java面向对象------使用重写技术编写自己的MyString类

在子类中重写toString()equals()方法。

课程笔记

1.代码

  • 运行入口
    package com.AcJam.test01;
    
    public class Main {
    	public static void main(String[] args) {
    		MyString str1 = new MyString("xxx");
    		MyString str2 = new MyString("zzz");
    		MyString str3 = new MyString("xxx");
    		System.out.println("str1.equals(str2) --> " + str1.equals(str2));// 输出false
    		System.out.println("str1.equals(str3) --> " + str1.equals(str3));// 输出true
    		System.out.println("str1 --> " + str1); // 输出xxx
    	}
    }
    
  • MyString类
    package com.AcJam.test01;
    
    public class MyString {
    	private String str;
    	
    	public MyString() {
    		str = "";
    	}
    	
    	public MyString(String str) {
    		this.str = str;
    	}
    	
    	@Override
    	public String toString() {
    		return str;
    	}
    	
    	@Override
    	public boolean equals(Object obj) {
    		// 比较地址
    		if(this == obj) {
    			return true;
    		}
    		
    		// 强转
    		MyString temp = (MyString) obj;
    		
    		//比较长度
    		if(this.str.length() != temp.str.length()){
    			return false;
    		}
    		
    		// 将String对象转换为字符数组
    		char[] strArray1 = this.str.toCharArray();
    		char[] strArray2 = temp.str.toCharArray();
    		// 比较两个字符数组
    		for(int i = 0;i < strArray1.length;i++ ){
    			if(strArray1[i] != strArray2[i])
    			{
    				return false;
    			}
    		}
    		return true;
    	}
    }
    
  • 运行结果
    Java学习笔记day09_05_使用重写技术编写自己的MyString类
上一篇:day09


下一篇:c++基础学习笔记——04-c++day09