首先,先说一下面向过程开发与面向对象开发的区别。
面向过程开发:在实现 某个功能的时候,注重的是步骤,每一个步骤都 是自己亲力亲为。
面向对象开发:在实现某个功能的时候, 不注重过程与步骤,只要结,不是亲力亲为,而是找有个帮助的人去做
例子:
面向过程开发:脱衣服 > 拿桶>把衣服放入桶里>加水加洗衣液 >用脚踩>过水 >晾衣服(整个过程都需要自己来动手)
面向对象开发:买一份洗衣机 > 衣服放入到洗衣机里洗(整个过程只要交给洗衣机来洗衣服就行,而对象就是洗衣机)
面向对象开发的好处:
1.符合我们常规的方式 ,把复杂的问题简单化
2.由执行者变成了指挥者
3.便于代码的扩展,与维护
面向对象的三大特征: 封装 继承 多态
面向对象开发与面向过程开发都不可以少, 相辅相成
类与对象
类
是抽象的,用于描述一个一类事物
成员属性:是什么 (年龄 性别 姓名) 名词
成员方法:能够做什么(一起吃饭, 学习) 动词
对象
是具体的表现形式,具体定义到某个人的什么
类与对象的关系 : 类是对象的抽象(图纸) 对象是类的具体(房子)
如何定义一个类 :
成员属性
数据类型 变量
String name;
int age;
成员方法
eat 的方法
public void eat(){
执行操作
}
注意点: 1. 成员属性都是些在类里,而不是写在方法里
2. 如果这个方法是成员方法必须把static 关键字去掉
匿名对象: 一次性对象,没有名字的对象 new Student()
特点 :
1.不会 在 栈内存里有地址 , 但是会在堆内存里去开辟空间.
2. 这个一次性的对象用完就马上销毁, 所有 节省内存空间
使用情况 一般是与作为方法的参数使用 getStudent(new Student()),
第二种情况 也就是 直接调用其类里的方法 new Student().study();
匿名对象 给成员变量赋值没有任何意义
play(new String[]{"30","40","50","60"});
局部变量与成员变量的区别 :
局部变量: 方法里的变量 叫做局部变量,包含方法里的参数
成员变量: 类下面的变量叫做什么成员变量
位置:位置不一样,局部变量放在方法里 ,成员变量在类下面
生命周期:
1.局部变量生命周期随着方法的开始而开始, 随着方法的结束而结束
2 成员变量的生命周期 随着对象的创建 而开始 ,随着对象的回收而结束 (垃圾回收期)
数据存的位置不一样:局部变量存在栈里 , 而成员变量存入在堆了
有无默认值 :成员变量都有默认值,局部变量没有默认值
属性私有化 : 私有的 关键字: private 加上私有的关键字之后, 只能够本类访问
私有化的好处:
1.隐藏内部细节, 保护数据的安全, 以及防止数据的错误
2.提供两个对外的方法, 一个setXXX() 赋值 getXXX() 取值
3 .对属性私有化;对方法私有化 ;可以对类私有化;可以对接口私有化
4.私有化实就是一种简单的封装。