1. 基础概念:1.面向过程:认识事物和分析解决问题的方式,强调解决问题的流程化
功能行为,缺点就是不能很好地适应需要的变化c/c++
2.面向对象:认识事物的方式方法,全面认知事物(属性,方法),将有联系的功能打包放入一个对象里,基于面对过程
3.面向接口编程:抽象对象身上的属性,方法。通过接口的实现类创建接口对象(contactdao cd=new contactdaoimpl();),通过接口对象调用实现类方法
4.类与对象的关系:类是模板,对象是实体
抽象对象身上的属性和方法生成类
实例化类生成对象 (instanceof);
5.对象的作用:1.设置对象的属性保存数据
2.调用对象的方法完成操作
6.消息:一个对象为完成操作向另一对象发送请求 Detail.setuserId(new user.getid());
7.匿名类:1.对对象的方法只调用一次,如果对多个成员调用必须给对象起名
2.对象可以作为实际参数进行传递
3.调用方法有意义
new 类()
总结:面向过程是挨个执行功能,面对对象是把有联系的功能放到一个房间(对象)里,
找到这个房间就可以使用每个功能。
人打开门,开门这个方法是定义在人身上还是门身上?
门身上有轴该怎么打开门最清楚,所以定义在门身上
实现从方法的执行者转变成指挥者
面试官问如何理解面对对象该怎么回答:1.基础概念:认知事物的方式方法,把复杂问题简单化,把角色从执行者转变成指挥者
2.结合现实的实例:面试官您就是用面对对象的思想思考问题,公司要招人是因为公司的业务在扩展。需求在变大。你需要找一些具有编程功能的人来为您工作。您就是指挥者,我就是对象。你在使用我身上的编程功能完成你的需求,让事情变得简单。 当然我身上还有很多其他功能,您需要的时候可以随时调用
2.面对对象三大特征:1.封装:1.隐藏对象的属性和实现细节,仅对外提供公共的get/set方法
2. private关键字用于修饰成员变量被私有的的成员只有在本类有效
3.一个带参一个不带参的构造方法,构造代码块定义不同对象共性内容的初始化
4.好处:将变化隔离,便于使用,提高重要性,提高安全性
2.继承:
3.多态:
开发原理:找对象使用,没有对象。创建对象 使用对象,维护对象的关系
类和对象的关系:
类是对现实生活中事物的描述
对象是这里事物实实在在存在的个体
成员变量和局部变量:1.作用范围:1.成员变量作用于整个类中。
= 2.局部变量变量作用于函数中,或者语句中。
2.在内存中的位置:1.成员变量:在堆内存中,因为对象的存在,才在内存中存在。
2.局部变量:存在栈内存中。
3.关键字:1.this:简单说:那个对象在调用this所在的函数,this就代表那个对象
this的应用:定义功能时,该函数内部要用到调用该函数对象的对象时,用this来表示这个对象
但凡功能内部使用了本类对象,都有this表示
2.static:1.用法是一个修饰符,用于修饰成员(成员函数。成员变量)。一个类中共有的信息
当成员被静态修饰后可以被对象调用,也可以类名.静态成员调用
特有内容随着对象存储,静态成员不存在堆里,存在在方法区(共享区,数据区)每个对象都可以调用
2.特点:1.随着类的加载而加载,随类的消失而消失,生命周期最长,不建议修饰太多静态成员,占用内存
2.优先于对象存在:静态先存在,对象后存在
3.可以被所有相同对象共享:静态成员修饰共性,实例成员修饰特性
4.可以直接被类名所调用
3.类变量和实例变量的区别:
1.类变量随着类的加载存在于方法区中,随着类的消失而消失,生命周期最长
2.实例变量随着对象的创建而存在于堆内存中,随对象的消失而消失
3.类加载只加载一次,实例变量随对象的创建可以加载多次
4.静态使用注意事项:1.静态方法只能访问静态成员(变量,方法)
非静态方法既可以访问静态成员,也可以访问非静态
2.静态方法中不可以定义this,super关键字。
因为静态优于对象存在。所以静态方法中不可以出现this.
5.总结:静态方法有利有弊:利:对对象的共享数据进行单独空间的存储,节省空间,可以直接被类名调用
弊:生命周期太长,访问出现局限性(只能访问静态)
原文地址:http://dycode.blog.51cto.com/11459164/1818116