Java面向对象、集合

/**

 * 一、Java继承

* 1.继承的概念

* 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

* 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,

*      或子类从父类继承方法,使得子类具有父类相同的行为。

* 2.extends关键字

* 在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。

* 3.implements关键字

* 使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,

*      可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

* 4.final关键字

* final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:

* 5.构造器

* 子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,

*      则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表。

* 如果父类有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,

*      如果没有使用super关键字,系统会自动调用父类的无 参构造器。

* 6.this 关键字

* this 关键字表示当前对象。可用于:

* 调用当前类的构造方法,并且必须是方法的第一条语句。如:this();调用默认构造方法。this(参数);调用带参构造方法。

* 限定当前对象的数据域变量。一般用于方法内的局部变量与对象的数据域变量同名的情况。

*      如 this.num = num。this.num 表示当前对象的数据域变量 num,而 num 表示方法中的局部变量。

 * 

 * 二、Java 封装

* 1.概念

* 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

* 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

* 要访问该类的代码和数据,必须通过严格的接口控制。

* 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

* 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

* 2.封装的优点

* ①良好的封装能够减少耦合。

* ②类内部的结构可以自由修改。

* ③可以对成员变量进行更精确的控制。

* ④隐藏信息,实现细节。

* 3.实现Java封装的步骤

* ①private②set(),get()

 *

 * 三、Java 多态

* 1.概念

* 多态是同一个行为具有多个不同表现形式或形态的能力。

* 2.多态的优点:消除类型之间的耦合关系;可替换性;可扩充性;接口性;灵活性;简化性

* 3.多态存在的三个必要条件:继承;重写;父类引用指向子类对象

* 例:Parent p = new Child();

* 4.多态的实现方式

* 方式一:重写

* 方式二:接口interface

* 1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,

*      因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。

* 2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。

* 方式三:抽象类和抽象方法

 *

 * 四、Java 接口

* 1.概念

* 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。

* 一个类通过继承接口的方式,从而来继承接口的抽象方法。

* 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

* 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

* 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。

* 另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

* 2.接口与类相似点:

* 一个接口可以有多个方法。

* 接口文件保存在 .java 结尾的文件中,文件名使用接口名。

* 接口的字节码文件保存在 .class 结尾的文件中。

* 接口相应的字节码文件必须在与包名称相匹配的目录结构中。

* 3.接口与类的区别:

* 接口不能用于实例化对象。

* 接口没有构造方法。

* 接口中所有的方法必须是抽象方法。

* 接口不能包含成员变量,除了 static 和 final 变量。

* 接口不是被类继承了,而是要被类实现。

* 接口支持多继承。

* 4.接口特性

* 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract

*      (只能是 public abstract,其他修饰符都会报错)。

* 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量

*      (并且只能是 public,用 private 修饰会报编译错误)。

* 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

* 5.抽象类和接口的区别

* ①抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。

* ②抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。

* ③接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。

* ④一个类只能继承一个抽象类,而一个类却可以实现多个接口。

 * 五、集合(容器)

*  1.接口:Collection<-List(采用线性列表的存储方式,长度可动态改变),<-Set ;Map(采用键-值对的存储方式,长度可动态改变)

*  2.具体类:List<-ArrayList,LinkedList ; Map<-HashMap

*  3.Set和List的区别

* ①Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

* ②Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。

* ③List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。

*              查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

*  4.注:

*  ①Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素,

*  Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。

*  ②Set 具有与 Collection 完全一样的接口,只是行为上不同,Set不保存重复的元素。

 * 

 * 六、泛型的学习:

*  泛型的使用:1.可以避免 集合 传入了不需要的类型的对象(指定集合中对象的类型)

*  |---- List list = new ArrayList();

*     2.控制在类中传入的对象类型

*  |---- class DAO{

*  public T get(){

*  }

*  }

 * 可自定义泛型类

*  |---- class Box {}

 * 泛型方法

*  |---- public E getE(E e){

*  return e;

*  }

 *

 * @author Missy

 */

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继...
    863cda997e42阅读 696评论 0 1
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 489评论 0 2
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,205评论 0 2
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,715评论 0 11
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,277评论 0 2