A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fanzenghuiu 初级黑马   /  2017-12-21 17:14  /  1366 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2017-12-22 16:24 编辑

就业班总结
继承:
作用: 多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类),再让多个类去继承这个父类,我们的多个类就可以获取到父类中的成员变和成员方法了。

概念:
  从已有的类派生出新的类
  已有类成为父类(基类),新类成为子类(派生类)
  子类对于父类的关系就是继承

关键字:extends
  作用: 子类继承父类时使用
  定义位置:子类类名后
  格式: 权限修饰符class 子类类名extends父类类名{}

继承特点:
  Java语言只支持单一的继承,只能继承过一个父类

  Java语言支持多层继承(一个儿子可以有一个亲爹,还可以有一个亲爷爷)

继承的优缺点
   优点
    提高了代码的复用性
    提高了代码的可维护性
   缺点
    类的耦合性增强了
    开发的原则:高内聚低耦合 0
    内聚:就是自己完成某件事情的能力
    耦合:类与类的关系
   
继承中成员变量的特点:
  子类只能获取父类的非私有变量(老爹的私房钱儿子不知道)
  子父类中成员变量的名字不一样直接获取父类的成员变量
  子父类中成员变量名字一样的获取的是子类的成员变量
   
    就近原则:谁离我近我就用谁
如果有局部变量就使用局部变量
如果没有局部变量,有子类的成员变量就是用子类的成员变量
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
如果三个都没有变量名称 就出错了

this:使用本类中的成员方法或变量
super:使用
   三个成员变量名字一样
   super.成员变量名
   this.成员变量名
   成员变量名
   
    super:可以获取父类的成员变量和成员方法 ,用法和this是相似的

this与super的区别:
  this:当前对象的引用
     调用子类的成员变量
     调用子类的成员方法
     在子类的构造方法第一行调用子类其他构造方法
  super:子类对象的父类引用
      调用父类的成员变量
      调用父类的成员方法
      在子类的构造方法第一行调用父类的构造方法
      
继承中成员方法的特点:
  子类中没有这个方法,调用父类
  子类中重写了这个方法,调用子类的

重写与重载的区别:
  定义位置不同:
   重载:同一个类中
   重写:存在继承关系的子父类当中
  方法的重写:override 在字符类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是重写过后子类的方法 在字符类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是重写过后子类的方法
  方法的重载:在一个类中,但是其参数不一样(参数的个数,参数的类型,参数的顺序)

方法重写的应用场景:
      当父类的方法不能完全满足子类使用,这个时候子类重写父类的方法,
      并可以在方法中使用关键字super调用父类的方法,这样做既可以保有父类的功能,也可以拥有子类的特有功能
方法重写的注意事项:
      不能重写父类私有的方法,
      权限必须大于等于父类方法的权限
      
      
注解:@Override
  用于约束被注解方法必须是重写父类的方法,如果父类没有这个方法则报错
  注意字母O是大写的
  
  
继承中构造方法的执行顺序
  在有子父类继承关系的类中创建子类的对象,调用子类的构造方法,如果子类构造方法的第一行代码没有调用父类的构造方法,则会默认的调用父类的无参构造
  肯定会先执行父类的构造,因为要先给父类的成员变量经行初始化,子类可能会使用到
  
我们可以使用super()在子类的构造方法的第一行中调用父类的构造方法

  
继承示例:

父类
public class Father{
  public void eat();
}
子类
public class Son extends Father{
  子类不用定义eat方法就可以调用,
      因为从父类继承过来了

}

匿名对象:没有名字的对象
匿名对象的应用场景:
  当方法只调用一次的时候可以使用匿名对象
  可以当作参数进行传递,但是无法在传参之前做其他的事情

注意:匿名对象可以调用成员变量并赋值,但赋值并没有意义
  多态的前提:

子父类的继承关系
子类重写了父类的方法
父类引用指向子类对象 Animal cat=new Cat();

动态绑定:运行期间调用的方法,是根据其具体的类型

    编译期间
   
多态的成员特点:Dad x=new kid();
成员变量 编译时看的是左边,运行时看左边 student.age
静态方法 编译时看的是左边,运行时看左边 student.staticFunc();
成员方法 编译时看左边,运行时看右边  student.eat();

  
  编译时看的都是左边,运行时成员方法看的是右边,其他(成员变量和静态方法)都是左边

多态中的向上转型和向下转型:
引用类型之间的转换
  向上转型
   由小到大(子类型转换成父类型)
  向下转型
   有大到小(父类型转换成子类型)
基本数据类型的转换
  自动类型转换
   由小到大
    byte short char-- int -- long --float --double
  强制类型转换
   有大到小
   
   
多态的优缺点
优点:提高可维护性(多态前提所保证的),
    提高代码的可扩展性
    提高代码复用性
缺点:父类无法直接访问子类特有的成员

多态的应用:
向上转型:作为参数类型,简化代码
向下转型:调用子类对象特有的方法


instanceof语句
作用:判断一个对象是否是某个类的对象,如果是则返回true,如果不是则返回false
格式:对象 instanceof 类名
常见用法: if(s instanceof Student){}

abstract:关键字,用于修饰方法和类
抽象包括两种:
抽象方法:不同类的方法是相似的,但是具体内容又不太一样,所以我们只能抽取他的声明,没有具体的方法体,没有具体方法体的方法就是抽象方法
抽象类:有抽象方法的类 必须是抽象类

注意:一个类继承了抽象类需要重写他所有的抽象方法,否则这个类就得是抽象类

抽象类
abstract class Animal{

  public abstract void eat();
}
抽象类的特点:
成员变量
  可以有成员变量
  可以有常量
成员方法
  可以有抽象方法
  可以有非抽象方法
构造方法
  可以有构造方法的,需要对抽象类的成员变量进行初始化、

抽象类的细节
abstract不能与final,private 共存

抽象类的思想
Java中应用的抽象
  Reader/Writer类
  利用抽象起到规范作用
  链表:有链子连接起来的一堆结点
结点:地址值、值、下一个结点地址值

链表的特点:
查询慢,增删快

             day    06

Collection接口:

boolean  add(添加)

void    clear(清空集合)

boolean  contains(判断集合中是否包含元素)

boolean   isEmpty(是否为空)

boolean   remove (删除)

int  size(返回集合中的元素个数)

object [ ]  toArray(将集合转换成一个objct类型的数组)

集合的遍历方式"

1:toArray(),可以把集合转换成数组.然后遍历数组即可.

2:iterator(),可以返回一个迭代器,我可以通过迭代器对象来迭代集合.

Iterator:可以用于遍历集合

next()返回迭代写一个元素

hasNext()判断是否包含元素

迭代器是依赖集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,

foreach:增强for循环,一般用于遍历集合或者数组

:格式:for(元素的类型变量:集合或者数组对象){

可以直接使用变量;

}

List:

有序的(存储和读取的顺序是一致的)

有整数索引

允许重复的

LIST的特有功能:

void  add   :在指定索引位置添加指定元素

get  :根据索引返回元素

remove:删除指定元素并返回

set:将指定索引位置的元素替换为指定元素,

创建列表对象List    a = new ArrayList();



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马