难以理解对象状态、行为和标识?

2022-09-01 16:45:01

我的教授指示我在一个页面上介绍自己,就好像我是一个对象一样,我必须解决三件事:
1)对象状态,2)行为和3)身份。

但是,我仍然对如何去做这样的事情感到非常困惑。(我已经阅读了我必须解决的三个属性,但我不知道如何将其应用于一个人)。
例如,我被告知狗会有状态,例如名称,颜色和品种;以及行为,如走路,吠叫或摇尾巴。

所以我会做一些类似于:

Student me = new Student();
System.out.println(me.getName()); //a state?
System.out.println(me.getCurrentActivity()); //A behavior? (if it were to return watching TV or something) 
System.out.println(me.get....()); //???

还是我在这里得到了完全错误的想法?


答案 1

对象的特征是:

状态对象有哪些,学生有名字,姓氏,年龄等

行为对象做什么,学生参加“初学者Java”课程

身份是什么使它们独一无二,学生有学生ID号,或者是唯一的电子邮件。(这在实现 equals 方法时很重要,以确定对象是否不同)

Student john = new Student("John");
john.setCurrentActivity("Learning Java");
john.setAge(21);
john.setWeight(173);
john.setAddress(...);
john.setHobbies(...);

你可以找出获取者。

public class Student {
    private String name;
    private int    age;
    //etc

    // construct a new student 
    public Student(String name) {
        this.name   = name;
    }

    public setAge(int age) {
        this.age   = age;
    }

    public int getAge() {
        return age;
    }
}

一个汽车物体的插图,我发现它可能会对你有所帮助......

汽车状态

  • 速度
  • 转速
  • 齿轮
  • 方向
  • 燃油油位
  • 发动机温度

行为

  • 换挡
  • 走得更快/更慢
  • 反向进行
  • 关断

身份

  • 电压
  • 车牌

答案 2

所有对象都有三个基本功能:

  • 行为
  • 身份

对象的状态由对象的属性和这些属性具有的值定义。在您的情况下,name, age, gender

这个术语指的是 how ,它由一个对象可以执行的操作来定义。在你的情况下,学生对象,可以做一些活动吗?"behavior"objects interact with each other

student.getResults();
  • 身份:

Even objects with the same properties and behavior have their own individual identity.

例如

同一制造商在同一年制造的2辆蓝色旅行车仍然是独立而独特的汽车。

对象的标识与其属性或操作无关。因此,无论对象的属性具有什么值,它都将保留其标识。