一、笔记
1.面向过程开发:在实现某个功能时,注重的是步骤,每个步骤都是自己亲力亲为。
面向对象开发:在实现某个功能时,不注重过程与步骤,只要结果,不是自己亲力亲为,而是找个人去做。
面向对象开发的好处:
1.符合我们常规的方式,把复杂的问题简单化
2.由执行者变成指挥者
3.便于代码的扩展与维护
面向对象的三大特征: 封装 继承 多态
面向对象开发与面向过程开发都不可以少相辅相成。
2.类与对象:
类:是抽象的, 用于描述一个一类事物
成员属性: 是什么(名词) 如:年龄 性别 姓名
成员方法: 能够做什么(动词)如:吃猪脚饭 学习
对象 : 是具体的表现形式
类与对象的关系:类是对象的抽象(图纸) 对象是类的具体(房子)
3.定义一个类
找其属下与方法
成员属性
* 数据类型 变量
* String name;
* int age;
成员方法
* // eat的方法
* public void eat(){
* 执行操作
* }
注意点:
1. 成员属性都是些在类里,而不是写在方法里
2. 如果这个方法是成员方法必须把static 关键字去掉
4.内存分析
1.以引用数据类型作为返回值 ==》 传递的都是内存地址
2. 以应用数据类型作为参数
5.匿名对象
定义:一次性对象,没有名字的对象 new Student()
特点 :
1.不会在栈内存里有地址,但是会在堆内存里去开辟空间
2.这个一次性的对象用完就马上销毁, 所以节省内存空间
3.匿名对象 给成员变量赋值没有任何意义,如:play(new String[]{"30","40","50","60"})
使用情况:(两种)
1.一般是与作为方法的参数使用 getStudent(new Student())
2.直接调用其类里的方法 new Student().study();
6.局部变量与成员变量
定义:
局部变量:方法里的变量叫做局部变量,包含方法里的参数
成员变量:类下面的变量叫做什么成员变量
区别:
位置:
位置不一样。 局部变量放在方法里 ;成员变量在类下面
生命周期:
1.局部变量生命周期随着方法的开始而开始, 随着方法的结束而结束
2.成员变量的生命周期随着对象的创建 而开始 ,随着对象的回收而结束 (垃圾回收期)
数据存的位置不一样:
局部变量存在栈里,而成员变量存入在堆里
有无默认值:
成员变量都有默认值,局部变量没有默认值
7.属性私有化
关键字: private(加上私有的关键字之后,只能够本类访问)
可以私有化有:
1.对属性 2. 对方法 3 对类私有化 4.对接口私有化
私有化 其实就是一种简单的封装
私有化的好处:
1.隐藏内部细节
2.保护数据的安全, 以及防止数据的错误
提供两个对外的方法:
setXXX() 赋值 和 getXXX() 取值
8.this关键字
本类的对象引用 ==> 也就是谁调用的这个方法, 这个对象就是谁
this. 变量:获取的都是成员变量
this.调用其方法:方法肯定是成员方法
在 一个方法里面:如果成员变量与局部变量的名字 是一样的,局部变量的作用域优先于成员变量
9.封装:
抽取出来的方法就是封装
好处:
1.隐藏内部代码实现的细节
2.代码可重用性
3.提高代码的可维护性
属性的封装
1.私有化属性 2.给相应的get 和 set 方法
二,总结
第六天的学习感觉越来越抽象了,特别是内存的分析,感觉表面是明白了,但是深入点了解好像又很难理解。