我的教授指示我在一个页面上自我介绍,好像我是一个对象,我必须解决三件事:
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....()); //???
或者我在这里得到了完全错误的想法?
答案 0 :(得分:39)
对象的特征是:
<强>国家强>: 对象有什么,学生有名字,姓氏,年龄等
<强>行为强>: 对象做什么,学生参加“Java for beginners”课程
<强>身份强>: 是什么使他们成为唯一,学生有学生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对象的插图,我发现这可能对你有帮助......
汽车状态:
<强>行为强>:
<强>身份强>:
答案 1 :(得分:3)
所有对象都有三个基本特征:
对象的状态由对象的属性以及它们具有的值定义。
在您的情况下,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辆蓝色旅行车 制造商仍然是独立和独特的汽车。
对象的标识与其属性或操作无关。 因此,无论其属性具有什么值,对象都将保留其身份。
答案 2 :(得分:1)
作为对@MrSimpleMind答案标记为最佳答案的更正,并详细说明了@JNL的答案:
身份并不是使对象在其状态方面唯一的原因(例如,名称=“ Tim”或其他)。但是身份是,对象在内存中的位置是唯一的。
如果您想了解更多有关此内容的知识,可以先查看此Wiki page: Identity in OOP
更新
值得一提的是,它并不总是在内存中定位。将对象保存到数据库时,它实际上将保存为一行,这里使用ID列。
答案 3 :(得分:0)
状态:-状态是对象变量的值
行为:-是对象的方法
身份:-它是对象的名称。
例如:-
级车{
int速度= 100;
void accelerator(){}
}
class_car obj_car;
在这里
状态:-速度
行为:-加速
身份:-obj_car
答案 4 :(得分:0)
在对象的编程实现中,
其状态由其实例变量定义。实例变量是对象专用的。除非明确将其公开或提供给其他“友好”类使用,否则无法从对象外部访问对象的实例变量。
对象的行为由其方法定义。方法操纵实例变量以创建新状态;对象的方法也可以创建新对象。 Java white paper page:34