26

我的教授指示我在页面上介绍自己,就好像我是一个对象一样,并且我必须解决三件事:
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....()); //???

或者我在这里得到了完全错误的想法?

4

5 回答 5

53

对象的特征是:

状态对象有什么,学生有名字,姓氏,年龄等

行为对象做什么,学生参加“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;
    }
}

Car 对象的插图,我发现它可能会对您有所帮助...

车况

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

行为

  • 换档
  • 走快/慢
  • 反向走
  • 停止
  • 关闭

身份

  • 车辆识别号
  • 牌照
于 2013-08-13T21:20:54.770 回答
4

所有对象都具有三个基本特征:

  • 状态
  • 行为
  • 身份

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

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

student.getResults();
  • 身份:

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

例如,

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

对象的身份独立于其属性或操作。因此,无论其属性具有什么值,对象都将保留其身份。

于 2013-08-13T21:30:57.623 回答
4

作为对标记为最佳答案的@MrSimpleMind 答案的更正,并详细说明@JNL 的答案:

身份并不是使对象在其状态方面唯一的原因(例如,名称=“蒂姆”或其他)。然而,标识是对象在内存中的位置方面是唯一的。
如果您想了解更多关于此的内容,您可以从查看此Wiki 页面开始:OOP 中的身份

更新
值得一提的是,它并不总是在内存中的位置方面。将对象保存到数据库时,本质上将保存为一行,这里使用了 ID 列。

于 2018-08-02T10:06:16.010 回答
0

状态:- 状态是对象变量的值

行为:- 是对象的方法

身份:- 它是对象的名称。

例如:-

类车{

国际速度= 100;

无效加速(){}

}

class_car obj_car;

这里,

状态:- 速度

行为:- 加速

身份:- obj_car

于 2019-10-13T19:24:32.603 回答
0

在对象的编程实现中,

它的状态由它的实例变量定义。实例变量是对象私有的。除非明确公开或提供给其他“友好”类,否则对象的实例变量无法从对象外部访问。

对象的行为由其方法定义。方法操作实例变量以创建新状态;对象的方法也可以创建新对象。 Java 白皮书页数:34

于 2019-10-28T08:14:30.003 回答