面向对象 面向对象思想: 面向对象是基于面向过程的编程思想 面向过程:强调的是一个功能的步骤 面向对象:强调的是对象;然后对象去调用功能; 面向对象的思想特点: 是一种更符合我们的思考习惯的思想 可以将复杂的事情简单化 将我们从执行者编程了指挥者 举例: 买电脑: 面向过程: 自己一步一步的去买的过程 ;结果我有了电脑 面向思想: 就是让别人去买; 结果我有了电脑 洗衣服: 面向过程: 就是自己一步一步的洗衣服: 面向对象: 让洗衣机洗; 我们是如何表示现实世界的食物的呢? A 属性: 就是食物的描述信息 B 行为 就是食物能够做什么 Java 语言基本的单位是类, 类是一组相关的属性和行为的集合 类的定义: 类是用来描述现实世界的事物的 事物: 属性: 事物的描述信息 行为 是无能做什么呢 类: 成员变量: 成员方法 需求:写一个学生类 分析: 学生事物 属性: 姓名 年龄 行为: 学习,吃饭 学生类 成员变量: 姓名 年龄 成员方法: 学习 吃饭 成员变量:类中,方法外,不需要给初始化值,有默认值 成员方法: 去掉static关键字 如何创建对象 格式: 类名 对象名 = new 类名(); 如何访问成员呢? 成员变量: 对象名.变量名 成员方法: 对象名.方法名(); 成员变量 和 局部变量的区别: A: 在类中的位置不同 成员变量: 类中 方法外 局部变量: 方法中或者方法声明上 B: 在内存中的位置不同 成员变量 堆内存 局部变量 栈内存 C: 生命周期不同 成员变量 随着对象的创建而存在,随着对象的消失而消失 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失 D: 初始化的问题 成员变量: 有默认值 局部变量: 没有默认值 必须先定义 赋值 最后使用 Private关键字 private是一个权限修饰符 可以修饰成员变量,也可以修饰成员方法 被private修饰的成员只能在本类中被访问 针对private修饰的成员变量 我们会相应的提供getXxxx()和setXxxx用于获取和设置成员变量的值,方法用public修饰 封装: This关键字 起名字我们要做到见名知意 而我们现在的代码中n和a就没有做到见名知意,所以我们要改进 如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近原则 用this 就能解决问题 This.name = name; This的作用: 代表所在的当前对象的引用 方法被哪个对象引用就代表哪个 构造方法 通过new关键字调用构造方法 格式: 类名 对象名 = new 构造方法(.....) 方法名和类名相同 没有返回值类型 连void都没有 没有具体的返回值 注意事项: A:如果我们没有给出构造方法,系统会提供一个默认的无参构造方法供我们使用 B:如果我们给出了构造方法 系统将不在提供默认的无参构造方法供我们使用 这个时候 如果我们想使用无参构造方法,就必须自己写一个 建议自己写一个 C: 构造方法也可以重载 成员变量赋值 A:set Xxxx()方法 B: 带参构造方法
|