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

 */

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

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