摘要: 接口作为方法的参数和返回值 ArrayList点进去看源码 再点进去看List<E>的源码 我们已经学了多态,就可以使用左父右子 这里的接口又作为参数又作为返回值 阅读全文
posted @ 2019-07-21 23:50 高山-景行 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 任何一种数据类型都可以作为成员变量的类型, 接口也可以做为成员变量的类型 新建Hero类 定义技能的接口Skill。然后里面定义use的方法 生成代码 定义英雄的类,设置完了名字以后,还要设置技能。但是这个技能是一个接口 有几种方式,这里创建一个实现类,重写里面的方法 设置技能,new技能的实现类 阅读全文
posted @ 2019-07-21 23:45 高山-景行 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 创建Hero类,里面定义一个成员变量Hero String的源码,可以看到String就是一个类。 成员变量是可以用一个类作为它的类型的 创建一个武器的类Wapon,定义武器的代码成员变量。生成getter和setter 生成无参和有参的构造函数 武器类可以做为英雄的成员变量 给英雄定义一个攻击的方 阅读全文
posted @ 2019-07-21 23:35 高山-景行 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 注意事项 首先解析一下它的格式 匿名内部类适用于怎样的场景 匿名内部类只能使用一次。 第二再次调用接口的时候,重复代码又写了一遍。 接口中有两个方法的情况 实现类也要覆盖从写两个方法。 匿名类也要覆盖重写两个方法 分别调用两个方法 这么直接调用method2是错误的。没有办法让一个匿名对象使用第二次 阅读全文
posted @ 2019-07-21 23:04 高山-景行 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 匿名内部类用的最多。做为java8的莱姆大表达式的重要前提 新建抽象类,定义抽象方法, 前面的abstract abstract可以省略 实现这个接口,覆盖重写抽象方法 学习了多态,可以左父右子 同样输出 这个实现类,在new的时候才用到了它一次 提示的第一个,后面是带大括号的 直接回车后,就成了匿 阅读全文
posted @ 2019-07-21 21:53 高山-景行 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 单独看个很小但是很重要的注意事项 新建一个外部类 新建局部内部类。这里num因为没有重名的可以直接访问 没写final也叫做有效final ,因为它的值没有变! 不过在前面加上final更保险 写上final后,如果再赋值就会报错。 没写final。但是二次赋值了,也会报错 这里面有个内存中声明周期 阅读全文
posted @ 2019-07-21 21:40 高山-景行 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 定义在方法内部的 , 权限修饰符 可以不写修饰符。 但是不能用private protected也不行 写就报错 阅读全文
posted @ 2019-07-21 21:32 高山-景行 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 内部类的重名问题 就近原则,输出30 输出20 想要输出外部类的num的值。下面是错误的写法 正确的写法 阅读全文
posted @ 2019-07-21 21:21 高山-景行 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 如何使用成员内部类 间接方式 间接方式,在外部类的方法里面使用内部类 直接方式 一定要按照公式去写!!!! 阅读全文
posted @ 2019-07-21 21:16 高山-景行 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 成员内部类 内部类的基本格式 注意事项: 定义成员内部类 外部类定义private的成员变量,并生成getter和setter 内部类可以调用外部类的私有的成员变量 在文件夹中的打开 空白处右键选择 >意思是重新编译它 查看外部类和内部类最终生成的文件。$符号在内部类的时候是有这样的特殊含义。 阅读全文
posted @ 2019-07-21 21:11 高山-景行 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 完整 阅读全文
posted @ 2019-07-21 19:56 高山-景行 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 四种权限修饰符。从大到小 纵向再分成四种情况 同一个类 同一个类里面。private方式,可以访问到本类里面的 num成员变量 前面不写修饰符也能访问到 (default)就是不写的这种情况 受保护的。本类的也能访问 public更可以访问了。 private说的是同一个类里面可以访问。所以只要比p 阅读全文
posted @ 2019-07-21 19:52 高山-景行 阅读(145) 评论(0) 推荐(1) 编辑
摘要: 直接这么修饰成员变量就会报错。这里必须要手动赋值,因为string name这里的默认是值null。一但默认值以后就不能后续再赋值了。所以这里强制你必须要手动赋值。 给name赋值后。后面所有的代码 尝试给name赋值的地方都报错了。 通过构造进行赋值。 构造有两个一个有参的一个无参的。默认的构造没 阅读全文
posted @ 2019-07-21 17:35 高山-景行 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 局部变量,作用于大括号之内。出去没有了。 方法的参数也算是局部变量 final修饰的局部变量,赋值就会报错。第二次赋值就算是和第一次的值一样都是200也不行。 刚开始不赋值,后面再赋值是争取的 新建一个Student类,里面只有一个成员变量 name。然互写有参构造、无参构造、getter和sett 阅读全文
posted @ 2019-07-21 17:21 高山-景行 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 创建一个父类 在创建一个子类。继承这个父类。现在二者产生了继承关系。 在父类里面写一个方法 子类可以覆盖重写这个方法 那么子类就不能覆盖重写这个父类用final修饰的方法了。 abstract和final关键字不能同时使用 抽象是没有方法体的 抽象方法所在的类 也必须是抽象类。 子类中是一定要覆盖重 阅读全文
posted @ 2019-07-21 17:09 高山-景行 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 新建一个父类。Object类。默认了不写父类。父类也是Object类 final没有子类,但是一定有父类。 继承这个final修饰的类。就会报错。无法继承。 阅读全文
posted @ 2019-07-21 17:02 高山-景行 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 英文的含义和程序中的含义是相同的。最终的,不可改变的 阅读全文
posted @ 2019-07-21 16:35 高山-景行 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 新建usb的抽象类,里面有两个抽象方法,分别是打开设别和关闭设备 笔记本电脑是使用USB的接口。右边的鼠标和键盘是实现USB的接口 新建Computer类。里面有开机和关机的方法。还有一个使用设备的方法,参数是USB的接口类 鼠标类实现USB的接口 Alt+回车实现接口的方法。分别输出打开鼠标和关闭 阅读全文
posted @ 2019-07-21 16:30 高山-景行 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 笔记本电脑的使用设备。设备的类型:键盘、鼠标等。只要是usb的设备就能用。 有了usb接口作为统一规范标准。笔记本电脑只需要把参数写成usb就行了。 就可以往里面传参,就可以使用。 鼠标和键盘只要实现usb的接口,就可以变为通用的了。这就是接口的好处。 阅读全文
posted @ 2019-07-21 16:07 高山-景行 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 怎么知道父类的引用本来是cat还是dog呢 ??? 这里换成Dog 方法的参数是Animal。传入的是什么动物不知道。这个时候就需要instanceof来区分一下到底是什么动物。 阅读全文
posted @ 2019-07-21 13:51 高山-景行 阅读(93) 评论(0) 推荐(0) 编辑