面向对象1
1.递归分析执行过程,双重递归分析执行过程
2.小项目:家庭记账系统
(1)理清概念
开发者:逻辑严谨,考虑最终用户
测试人员:全方位测试
最终用户:傻瓜式操作
(2)开发项目中重要的两点
项目流程和每个时刻变量的值的变化
【作业】敲一遍项目的代码
3.学习面向对象的三条主线
(1)java类以及类成员
属性、方法、构造器(构造方法)
(2)面向对象的三大特征
封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)
(3)其他关键字
this、package、import等
4.面向对象和面向过程
(1)面向过程(POP):强调的是功能的行为(Procedure Oriented Programming)
(2)面向对象(OOP):强调的是功能的对象,将功能封装成了对象(Object Oriented Programming)
5.面向对象的好处
提高代码的复用性,扩展性,简化开发
6.类和对象
(1)类(class):类是对现实世界的描述,是抽象的、概念上的定义
(2)对象(object):对象是实际存在的该类事物的一个个体,也叫实例(instance)
7.属性和行为
(1)属性:为了描述事物的特征(数据部分) 要使用 属性 : 成员变量.
(2)行为:为了描述事物的行为(功能部分) 要使用 方法 : 成员方法.
8.对象的生命周期、寿命比较长,直到程序结束时,声明周期才结束。
9.【练习】
(1)写一个Dog类, 特征name, type, color, 行为 void shout(), void eat(String some), String say();再写一个DogTest, 创建一个狗对象, 给狗对象的所有属性赋上值, 并再打印输出所有属性, 再调用狗对象的所有方法.
(2)写一个类MyDate, 属性year, month, day. 方法 String say();在MyDateTest中,创建两个日期对象, 一个对象代表你的生日, 一个对象代理今天的日期, 打印输出;交换两个引用, 再打印输出.
10.对象是在堆内存中,而方法是在栈内存中,会分析创建对象使用对象,交换引用变量的堆内存和栈内存的变化。
11.三种属性赋值
(1)显示初始化 (2)隐式初始化 (3)普通赋值
12.null表示空地址----->0地址
在java中,永远都不会看到地址值,安全性高。
13.成员变量和成员方法
(1)成员变量和成员方法可以互相访问
(2)成员变量没有初始化,JVM可以帮助其初始化
(3)局部变量存储在栈内存中,出栈、入栈速度特别快、高效,所以不会帮助初始化,而成员变量存储在堆内存中,具有持久化的性质,JVM可以帮助初始化