很多人对面向对象开放程序设计都有一个大概的模糊的认识,但都不够直观,不够深刻,面向地还不够彻底
往往形成 面向对象开发==基于过程程序设计+类
然而这种观念是不对的
下面通过一个例子来直观地理解面向对象的概念:
这是一个人吃苹果的例子,一共有三个对象:人,剥皮机,苹果
最后的主函数就是一句话:人吃剥了皮的苹果
完全符合人的思维过程
class Person{
public void eat(Apple apple){ //人可以有吃苹果的动作
Apple peeled = apple.getpeeled(); //入口的苹果需要是剥好的
System.out.println("Yummy");
}
}
class Peeler{ //剥皮机,可以用来剥皮
static Apple peel(Apple apple){
return apple; //peeled
}
}
class Apple{ //第三个对象是苹果
Apple getpeeled(){
return Peeler.peel(this); //发送剥自己的请求
}
}
public class PassingThis {
public static void main(String[] args){
new Person().eat(new Apple()); //可以吃苹果啦
}
}