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