The*_*Guy 22 java state identity behavior object
我的教授指示我在一个页面上自我介绍,好像我是一个对象,我必须解决三件事:
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....()); //???
Run Code Online (Sandbox Code Playgroud)
或者我在这里得到了完全错误的想法?
MrS*_*ind 44
对象的特征是:
状态: 对象有什么,学生有名字,姓氏,年龄等
行为: 对象的作用,学生参加"初学者的Java"课程
身份: 是什么使他们与众不同,学生有学生证号码,或者是唯一的电子邮件.(这在实现equals方法时很重要,以确定对象是否不同)
Student john = new Student("John");
john.setCurrentActivity("Learning Java");
john.setAge(21);
john.setWeight(173);
john.setAddress(...);
john.setHobbies(...);
Run Code Online (Sandbox Code Playgroud)
你可以找出吸气剂.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
一个汽车对象的插图,我发现这可能会帮助你一些...
汽车状态:
行为:
身份:
所有对象都具有三个基本特征:
对象的状态由对象的属性及其所具有的值定义。就你而言,name, age, gender
该术语"behavior"指的是“如何objects interact with each other”,它是由对象可以执行的操作来定义的。就你而言,学生反对,可以做一些活动吗?
student.getResults();
Run Code Online (Sandbox Code Playgroud)
Even objects with the same properties and behavior have their own individual identity.
例如,
同一制造商于同一年生产的 2 辆蓝色旅行车仍然是独立且独特的汽车。
对象的身份与其属性或操作无关。因此,无论对象的属性具有什么值,它都将保留其身份。
作为对@MrSimpleMind 标记为最佳答案的答案的更正,并详细说明@JNL 的答案:
身份并不是使对象在其状态方面唯一的原因(例如名称=“Tim”或其他)。然而,身份是指对象在内存中的位置是唯一的。
如果您想了解更多相关内容,可以首先查看此Wiki 页面:OOP 中的身份
更新
值得一提的是,它并不总是在内存中的位置方面。将对象保存到数据库时,它本质上会保存为一行,这里使用 ID 列。