来黑马学习已经快10天了,这是第一次发帖子,写总结,但是明明知道没什么技术水准,发出来也是在各位大神面前班门弄斧,不过也算是这几天的收获了,所以还是发表出来和大家讨论讨论。 首先,谈谈我这几天的感想,我觉得每一位同学都那么勤奋,基本上都是一天除了吃饭睡觉就是在学习,黑马不愧是一个训练精英的地方,整体上给我的感觉压力很大,竞争很强力,同学们很上进,非常有学习的氛围,比方自己想偷懒玩一会,放松一会,和别人的差距都会越来越大,简直是一刻不敢放松,所以首先感觉黑马提供这么好的学习氛围,提供一个可以让我和这么多大神精英们一起学习的机会,我相信这也是我人生的转折点。下来谈谈我学习10后,对面向对象的总结。 自我理解,前几天学习的java的概念,程序,数据类型,运算符,语句,方法,数组等,都是面向过程的思想,也就是自己完成定义过程,得出结果,而学习面向对象之后,我觉得我们平时就是面向对象做事情,比如在现实生活中的任何一个实体都可以用对象来表示,比方说我们每个人,人这个个体有他的一些属性比方你的名字,性别,年龄等等),还有一些行为,比如人可以吃饭也一睡觉可以讲话等等,这样就构成了一个实体的对。我们对这个个人再进行一个抽象,抽象也就是寻找我们个体的共性,我们每个人的共性就是我们是人,这样我们就有了类的概念-对象的抽象!这样我们可以得到对象与类之间的关系,对象是类的实例,实例的抽象是类!所以我们只需要写出一个,就可以实例化许多对,想想人类和我们每个人的关系,这个实例化是通过new 。总结就是这些,目前也学习到这里,等到下个知识点,再来分享理解。 下面是我自己笔记做的归纳总结: 众所周知,java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】 一、封装 对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性) 具体来说: 1.属性: 私有 private(提供set和get方法) 2.方法: 公开或私有public/private 3.方法声明 --> 公开 方法实现 --> 隐藏 实现改变时,对对象的使用者没有影响。 二、继承 共性放到父类,特性放到子类;父类 --> 子类,其实就是特殊 --> 一般 1.关键字: extends 例如:Dog extends Animal{} 2.java中一个类最多只能有一个直接的父类,即单继承(具有简单性、树形结构), C++中是单继承 java中要实现多继承,通过接口来实现。 3.父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。 4. 访问权限 继承
private 本类内部 不能继承 default 本类+同包 同包子类可以继承 protected 本类+同包+不同子包 可以继承 public 公开 可以继承 5.构造对象过程 (1)分配空间 (2)递归地构造父类对象 a. 父类 初始化属性 b. 父类 构造方法 (3)初始化属性 (4)调用构造方法 6.super 用法: super() 调用父类的构造方法,只能出现在构造方法的第一行 super.方法名 super表示父类的对象,通过它去调用父类的方法 注意:在写类的时候,一定要写默认无参的构造方法,如果一个构造方法的 第一句既不是this(),也不是super()时,那么就会在这里隐含的调用 他的父类的无参的构造方法,即隐含的有super()。 三、多态 运行时多态。 子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。 1.多态原则: (1)对象类型不变 (2)只能用引用调用其引用类型中定义的方法 (3)运行时,根据对象的实际类型去找子类覆盖之后的方法 例子: 有Animal类中有eat()和sleep()两个方法,sleep()中睡8小时;子类Dog中有 eat()方法,sleep()方法中睡6小时,还有wangwang()方法。 现创建Animal a=new Dog(); 不能调用a.wangwang(),调用a.sleep()输出睡6小时。 2.多态的灵活变换 (1)用于参数列表上: public void m(A a){} 可以用A类的任何子类对象作为参数 (2)用在返回值上: public A m(){} 这个方法可能返回A类的任何子类对象
|