[英]Trouble understanding Object State, Behavior, and Identity?
我的教授指示我在页面上介绍自己,就好像我是一个对象一样,我必须解决三件事:
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....()); //???
或者我在这里得到了完全错误的想法?
对象的特征是:
状态:对象有什么,学生有名字、姓氏、年龄等
行为:对象做什么,学生参加“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 对象的插图,我发现它可能对您有所帮助......
汽车状态:
行为:
身份:
所有对象都具有三个基本特征:
对象的状态由对象的属性和这些属性的值定义。 在你的情况下, name, age, gender
术语"behavior"
是指objects interact with each other
如何objects interact with each other
,它由对象可以执行的操作定义。 在你的情况下,学生对象,可以做一些活动吗?
student.getResults();
Even objects with the same properties and behavior have their own individual identity.
例如,
2辆由同一厂家同年生产的蓝色旅行车仍然是独立且独特的汽车。
对象的身份与其属性或操作无关。 因此,无论其属性具有什么值,对象都将保留其身份。
作为对标记为最佳答案的@MrSimpleMind 答案的更正,并详细说明@JNL 的答案:
身份并不是使对象在其状态方面唯一的原因(例如 name = "Tim" 或其他什么)。 然而,身份是一个对象在内存中的位置是唯一的。
如果您想了解更多关于此的内容,您可以从查看此Wiki 页面开始:OOP 中的身份
更新
值得一提的是,它并不总是在内存中的位置方面。 将对象保存到数据库时,它本质上将保存为一行,此处使用 ID 列。
状态:- 状态是对象变量的值
行为:- 是对象的方法
身份:- 它是对象的名称。
例如:-
类车{
整数速度 = 100;
无效加速(){}
}
class_car obj_car;
这里,
状态:-速度
行为:-加速
身份:- obj_car
在对象的编程实现中,
它的状态由它的实例变量定义。 实例变量是对象私有的。 除非明确公开或提供给其他“友好”类,否则无法从对象外部访问对象的实例变量。
对象的行为由其方法定义。 方法操作实例变量以创建新状态; 对象的方法也可以创建新对象。 Java 白皮书页数:34
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.