Java的简单理解(4)

Java
41. super关键字

super是直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法或属性。
普通方法:可以随便调用,没有顺序限制
构造函数中:任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(...);那么java默认都会调用super(),作为父类的初始化函数,所以你这里的super(),加不加都无所谓。

42. 继承VS组合

“是”的关系就使用继承
“拥有”的关系就使用组合

43. final 关键字

修饰变量:常量
修饰方法:该方法不可被子类重写,但是可以被重载
修饰类:修饰的类不能有子类,不能被继承。比如Math,String等。

44. 封装


image

封装要点:

类的属性的处理
1.一般使用private。(除非本属性确定会让子类继承)

  1. 提供相应的get/set方法来访问相关属性,这些方法通常是public的,从而实现对属性的读取操作。(注意boolean变量的get方法是用 is 开头的)。
    一些只用于本类的辅助性方法可以用private。
    希望其他类调用的方法用public。
45. 多态

多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说,能提高系统的灵活性和拓展性。
Java中如何实现多态?使用多态的好处?
引用变量的两种类型:
编译时类型(模糊一点,一般是一个父类),由声明时的类型决定。
运行时类型(运行时,具体是哪个子类就是哪个子类),由实际对应的对象类型决定。

多态的存在要有三个必要的条件:
要有继承,要有方法的重写,父类引用指向子类对象

48. 抽象类

为什么需要抽象类?如何定义抽象类?

  • 是一种模板模式,抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行拓展。
  • 通过抽象类,可以避免子类设计的随意性。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

要点:

  • 有抽象方法的类只能定义为抽象类
  • 抽象类不能实例化,即不能用new来实例化抽象类
  • 抽象类可以包含属性,方法,构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
  • 抽象类只能用来被继承
  • 抽象方法必须被子类实现
49. interface (接口)

为什么需要接口?接口和抽象类的区别?

  • 接口就是比"抽象类"还"抽象"的"抽象类",可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。
  • 接口就是规范,定义的是一组规则,体现了现实世界中"如果你是.......则必须能......"的思想。
  • 接口的本质是契约,就像我们人间的法律一样,制定好后大家都遵守。
  • 项目的具体需求是多变的,我们必须以不变应万变才能从容开发,此处的不变就是"规范",因此,我们开发项目往往都是面向接口编程。
  • 子类通过implements来实现接口中的规范。
  • 接口不能创建实例,但是可用于声明引用变量类型。
  • 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
  • 接口支持多继承
51. 内部类 (Inner Class)

一般情况,我们把类定义为独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类

内部类的作用

  • 内部类提供了更好地封装。只能让外部类直接访问,而不允许同一个包中的其他类直接访问
  • 内部类可以直接访问外部类的私有属性,内部类被当成其外部类得到成员。但外部类不能访问内部类的内部属性。

内部类的使用场合:

由于内部类提供了更好地封装特性,并且可以很方便的的访问外部类的属性,所以,通常内部类在只为所在外部类提供服务的情况下优先使用。

内部类的分类:

1.成员内部类(可以使用private,protected,public任意进行修饰,类文件: 外部类$内部类.class)

  • 非静态内部类(外部类里面使用非静态内部类和平时使用其他类没有什么不同)
    1. 非静态内部类必须寄存在一个外部类对象里,因此,如果有一个非静态内部类对象,那么一定存在对应的外部类对象。非静态内部类对象单独属于外部类的某个对象
    2. 非静态内部类可以使用外部类的成员,但是外部类不能直接访问非静态内部类成员。
    3. 非静态内部类不能有静态方法,静态属性,静态初始化块。
    4. 静态成员不能访问非静态成员:外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量,创建实例。
    5. 成员变量访问要点:
    ----------a .内部类里方法的局部变量:变量名
    ----------b.内部类属性:this.变量名
    ----------c.外部类属性:外部类名.this.变量名
    6.内部类的访问:
    ----------a.外部类中定义内部类:new innerClass();
    ----------b.外部类以外的地方使用非静态内部类
  • 非静态内部类
    使用要点:
  1. 当一个静态内部类对象存在,并不一定存在对应的外部类对象。因此,静态内部类的实例方法不能直接访问外部类的实例方法。
  2. 静态内部类看做外部类的一个静态成员, 因此外部类的方法中,可以通过:静态内部类.名字 访问静态内部类的静态成员。通过new静态内部类()访问静态内部类的实例。
  3. 在外部类的外面创建静态内部类
 public static void main(String[] args) {
     Face.Nose nose = new Face().new Nose();
     nose.breath();
     
     Face.Ear ear = new Face.Ear();
     ear.listen();
 }
}

class Face {
 int type;
 
 class Nose {
     String type;
     
     void breath() {
         System.out.println(Face.this.type);
         System.out.println("呼吸!");
     }
 }
 
 static class Ear {
     void listen() {
         System.out.println("我在听!");
     }
 }
}
52. 数组(Array)
  • 数组是相同类型数据的有序集合
    数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
  • 数组有三个特点:
    1. 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
    2. 其元素必须是相同类型,不允许出现混合类型。
    3. 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269