示例:把大象放到冰箱: ⑴ 面向过程:打开冰箱门 → 把大象放到冰箱中 → 关闭冰箱门。 ⑵ 面向对象:⒈人:①打开冰箱,②放入大象,③关闭冰箱。 ⒉冰箱:①开门,②关门。 人(①)调用冰箱的(①)【人调用冰箱的开门功能】 → 人(②)【把大象放到冰箱中】 → 人(③)调用冰箱的(③)【人调用冰箱的关门功能】
总结:⑴面向过程:侧重于怎么做,强调功能行为。是以执行者的角度分析问题。适合小型项目。 ⑵面向对象:侧重于让谁做,强调具备了功能的对象。是以指挥者的角度分析问题。适合中大型项目。 ⑶面向对象和面向过程两者不是完全脱离开来的,二者相辅相成,不可分割。
封装、继承、多态
⑴ 分析问题中设计到了哪些对象 名词抽取法 ⑵ 分析问题中用到了哪些功能 ⑶ 按面向过程的方式,依次将步骤写下即可(调用对象的功能)
Java中一切客观存在、可以被描述的事物都是对象。万物皆对象。
描述一个对象可以通过两个部分:属性和方法。
属性:描述对象的外部特征。如:姓名、年龄、体重、颜色等。 方法:描述对象的行为特征或功能。如:吃、睡、学习等。
一组具有共同属性和方法的对象的集合被成为类。 多个对象的属性和方法类似,可以将这组对象提取出来,定义成一个类。
⑴ 关系 对象是客观存在的 类是抽象的,是一个模版,不能实际操作。
⑵ 区别 ① 类是通过对象提取(思考)出来的。 对象是通过创建(写代码)出来的。 ② 类是对象所属的类型。 对象是类的一个实例或实体。
① 创建对象 类名 对象名 = new 类名(); ② 访问对象的属性 为对象的属性赋值:对象名.属性名 = 值; 使用对象的属性:对象名.属性名; ③ 使用对象的方法 对象名.方法名(实参);
⑴ 栈:存放的是对象的引用和局部变量。 堆:存放的是对象。 方法区:存放的是类的描述信息,包括方法的描述。 ⑵ 对象和对象之间是互相独立的,它们都有各自的存储空间,互不影响。 ⑶ 当第一次创建对象时,类会被加载到方法区中。但是其他次创建对象时,类则不会继续被加载到方法区中。类只能被加载一次。整个方法区中只会存储一份类的描述信息。
⑵ 成员变量和局部变量的区别 ① 变量的作用域:变量的作用范围。
② 如何确定变量的作用域:取决于包含此变量的,最近的大括号。
③ 根据变量作用域的不同,将变量分为两类 ⒈成员变量(全局变量): 变量的作用域为整个类 ⒉局部变量: 变量的作用域为某代码块(方法)
④ 成员变量和局部变量的区别 ⒈ 局部变量必须先赋值,才可以使用。 成员变量可以不用赋值就使用,因为它有默认值。 ⒉ 全局变量随着对象的创建而创建,伴随着对象的消亡而消亡。生命周期较长。 局部变量随着代码块(方法)的执行而创建,伴随着代码块(方法)的执行结束而消亡。声明周期较短。 ⒊ 两个局部变量,如果在同一个代码块(方法)中,即有着相同的作用域时,则它们不能重名。 一个成员变量和局部变量可以重名,使用时遵循就近原则。 示例:
public class Test { public static void main(String[] args) { new Person().sayAge(); // 10 } } class Person { int age = 20; void sayAge() { int age = 10; System.out.println(age); } }注意:⑴ 通过类名可以调用静态方法,但不能调用普通方法。只能通过对象名来调用普通方法。 ⑵ 静态方法中,只能访问静态的方法或静态的属性。 而普通方法既可以访问静态的方法或静态的属性,也可以访问普通的方法或普通的属性。 ⑶ 原则上是能不加static 就不加。