暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
1楼

image.png

尚新途

这个是因为你的obj是Object类型的,和Person02不是一个类型,使用不了其中的属性的

四明宝客
2楼
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    TestEquals that = (TestEquals) o;
    return id == that.id;
}

老师请问以下,IDEA自动生成的重写equals方法:

TestEquals that = (TestEquals) o;

这行代码没看懂,尤其是等号后面的

尚新途

TestEquals that = (TestEquals) o;

TestEquals 这个是你的当前类,o是你传递的要比较的类,(TestEquals) o;这个是把Object这个传递的参数强转成了TestEquals类型的,完后去做比较

专注的码农
3楼
@Override
public boolean equals(Object obj) {
    return super.equals(obj);
}
(Object obj) {
    .equals(obj)}

为啥我导入equals方法是这样的,和老师的不一样?

尚新途

同学,代码可以放代码区么,这里下面的代码乱码了

专注的码农

没懂哦老师

尚新途

代码没有放到代码区的话这里是乱码的image.png

郭霖
4楼

代码没有显示错误但适配不成功运行不了疑问.png


尚新途

没有main方法呀,把测试的代码放到main方法里

哇哈哈哈哈
5楼

TestObject Object {
    String String (idString nameString pwd){

    }

    String () {
        +++}

    (String[]args){
      TestObject t2 = TestObject()TestObject t3 = TestObject()System..println(t2.toString())System..println(t3.toString())System..println(t2.equals(t3))}

}

老师为什么这个结果的用户名跟密码都是null

尚新途

代码放到代码区,代码语言选择java,这样的代码看不了

image.png


么鸡么嘎
6楼

微信截图_20220914160219.png老师可以给我一下概念名词吗比如类方法什么之类的或者给我发文件  像第六行第十行这些叫什么啊

尚新途

这些概念名称老师这里也没有,这些东西在视频老师都有讲到,6行是创建类,关键字为class, extends是继承的关键字,10行是本类的构造方法,也就是这个TestObject这个类的,构造方法无返回值,非void修饰,方法名需要和类名保持一致,

e^jπ+1=0
7楼
package com.JB.yhb;

public class TestObject {
    public static void main(String[] args) {
       Person2 s=new Person2(18,171,"高尚");
       TestObject t=new TestObject();
       s.rest();
        System.out.println(s.age+" "+s.height+" "+s.name);
        System.out.println(t.toString());
        System.out.println(s);
    }
}
class Person2 extends Object{
    String name;
    int age;
    int height;
    public Person2(int age,int height,String name){
        this.age=age;
        this.height=height;
        this.name=name;
        System.out.println("你好");
    }

    @Override
    public String toString() {
        return null;
    }

    public void rest(){
        System.out.println("休息一会!");
    }
}

为什么编译之后,t的地址显示出来了,s显示null呢


尚新途

重写toString方法。不要返回null.

e^jπ+1=0
8楼
com.JB.yhbTestObject {
    (String[] args) {
       Person2 s=Person2()TestObject t=TestObject()s.rest()System..println(s.++s.++s.)System..println(t.toString())System..println(s)}
}
Person2 Object{
    String (ageheightString name){
        .=age.=height.=nameSystem..println()}

    String () {
        }

    (){
        System..println()}
}

为什么编译之后,t的地址显示出来了,s显示null呢

尚新途

已回复

JackieYuri
9楼

为什么这里用的是that,它和this有什么区别吗?

image.png

尚新途

这个that和this没有任何关系,这里that是对象名,可以是任意的。

二月有鲸的传说.
10楼

重写equals 对象的地址也变成一样的了 这是为啥

尚新途

我看一下你重写equals方法后,方法里是怎么定义的

元鑫
11楼

在equals不重写的情况下,equals与==有什么区别


尚新途

在不重写的情况下  equals就是==。

ZhangL
12楼
User {
    String String (idString nameString pwd){
        .=id.=name.=pwdSystem..println(+id++name++pwd)}
    (String[]args){
        User u1=User()User u2=User()System..println(u1)System..println(u2.toString())System..println(u1==u2)System..println(u1.equals(u2))}

  }

第一次运行输出结果

id1001name1pwd123456

id1001name1pwd123456

com.zhang.test.User@15aeb7ab

com.zhang.test.User@7b23ec81

false

false

 去掉/*后运行结果

id1001name1pwd123456

id1001name1pwd123456

com.zhang.test.User@408

com.zhang.test.User@408

false

true

使用equal方法后会直接对比实际数值,使输出结果产生上面这样的变化吗

尚新途

代码放到代码区,选择java,不然格式不对,无法查看代码。

image.png

尚新途
User {
    String String (idString nameString pwd){
        .=id.=name.=pwdSystem..println(+id++name++pwd)}
    (String[]args){
        User u1=User()User u2=User()System..println(u1)System..println(u2.toString())System..println(u1==u2)System..println(u1.equals(u2))}

  }


尚新途

这里选择一下java,放到出现的横框中,这个代码你不觉得看不懂嘛

image.png

旭日东升
13楼

老师我想问一下,如果a==b返回是true,那么a.equals(b)返回的也是true,对吗?

我知道==比的是地址,.equals()比的是值。如果不重写equals方法的情况下,

能举个例子,a==b返回是true,a.equals(b)返回是false的代码吗?我想了一下,没写出来

尚新途

双等基本类型下比较的是值,引用类型比较的是地址。而equals在不重写的情况下比较的是地址。

所以你说的这种==为true,那么equals也肯定是为TRUE的。

微信用户
14楼

老师,笔记本上的insert如何用,alt+insert,笔记本上不太好用,查了一下说按住Fn会转换,使用了还是不行。

尚新途

我看一下你的键盘,给我拍一下吧


尚新途

你这个键盘上没有insert键吧

尚新途

PgDn键上还有insert,在下面,橘红色字。

尚新途

能告诉我电脑的型号吗

尚新途

image.png

尚新途

Fn+PgDn不可以吗,组合键。Fn键没有坏吧。如果不行,可以加一个外接的键盘

尚新途

没坏,我在使用Fn+PgDn做思维导图时,没问题,就是在IDEA里不能用。

尚新途

你可以查看一下你的构造函数是不是这个快捷键组合,这个不行也可以修改一下,修改方式;

https://blog.csdn.net/Kalen54/article/details/107409247


尚新途

好的老师,从新设置的tab+shift按键


尚新途

嗯嗯,解决就好

好运常来
15楼

image.png

老师这个红色的错误不知道如何去修改,查看了也不懂

尚新途

这个equals方法的返回值需要一个Boolean类型的。你这个比较只是说了if成立怎么走,如果if不成立你也要考虑。

自我检测(5S)