java面向对象的问题
new Cat()代表对象,而c代表这个对象的引用,那么为什么有人说c是这个对象的实例呢?
比如这个题:
instanceof这个关键字的用法是:A instanceof B ,返回值为boolean类型,用来判断A是否是B的实例对象或者B子类的实例对象。如果是则返回true,否则返回false。
如:Person p = new Person() ;
Man m = new Man() ; //Man是Person的子类
Animal a = new Animal() ;
m instanceof Man //返回true
m instanceof Animal//返回false
m instanceof Person//返回true
这个题,m是new man这个对象的引用,那为什么说是实例对象呢?实例对象不应该是new man吗? 展开
类,用于描述多个对象的共同特征,它是对象的模板。
对象,用于描述现实中的个体,它是类的实例。
java面向对象的问题Cat c = new Cat();
new Cat()代表对象,而c代表这个对象的引用,那么为什么有人说c是这个对象的实例呢?
你基本概念理解不透彻呀。
类,用于描述多个对象的共同特征,它是对象的模板。
对象,用于描述现实中的个体,它是类的实例。
对面向对象有了了解之后,我们来说说在具体问题中如何使用面向对象去分析问题,和如何使用面向对象。
我们把大象装冰箱为例进行分析。
在针对具体的需求,可以使用名词提炼的办法进行分析,寻找具体的对象。
需求:把大象装冰箱里
对象:大象、冰箱
分三步:
1、打开冰箱门
2、将大象装进去
3、关闭冰箱门
分析发现打开、装、关闭都是冰箱的功能。即冰箱对象具备如下功能:
冰箱打开
冰箱存储
冰箱关闭
用伪代码描述,上述需求中有两个具体的事物 大象 和 冰箱
描述大象:
class 大象
{
}
描述冰箱
class冰箱
{
void 打开(){}
void 存储(大象){}
void 关闭(){}
}
当把具体的事物描述清楚之后,需要使用这些具体的事物,Java使用具体的事物,需要通过new关键字来创建这个事物的具体实例。
所以当你创建Cat对象的时候,既可以说c是Cat对象的引用也可以说是Cat对象的实例。
l 汽车类
public class Car {
String color;
int number;
void run() {
System.out.println(color + ":" + number);
}
}
通过代码的描述,知道类的真正意义就是在描述事物。属性和功能统称为事物中的成员。
事物的成员分为两种:成员属性和成员功能。
成员属性在代码中的体现就是成员变量
成员功能在代码中的体现就是成员方法
把写好的代码测试一下。需要一个可以独立运行类。
创建对象的格式:
类名 对象名 = new 类名();
测试类
public class CarDemo {
public static void main(String[] args) {
/*
* 测试:Car类中的run方法。
*/
// 1,创建Car的对象。给对象起个名字。
Car c = new Car();// c是类类型的变量。c指向了一个具体的Car类型的对象。
// 2,通过已有的对象调用该对象的功能。格式:对象.对象成员;
// 3,可以该对象的属性赋值。
c.color = "red";
c.number = 4;
c.run();
}
}
如果你还不懂,你可以私信我。
末尾的()意味着,在对象创建后,立即调用Cat类的构造函数 “=”操作符使对象引用指向刚创建的那个Cat 对象 这一套完成后 就变成了一个整体 对象 c 代表一个具体的Cat 你说他是对象也好Cat的实例也好 或者引用了new Cat也好都没毛病
麻烦问一下,
m instanceof person为什么是true呢?m不应该是Man的实例对象吗
m是 Man的对象 而Man是Person的子类 串一下 m也是Person的子类对象