随笔分类 - JAVA初步认识-第十章
摘要:一. 现在简单地将内存图解简单地串一串,从之前的到现在的全部组合起来讲述一下, 编译运行的结果为9,按照我们之前的认识来看,对象先是默认初始化,然后显示初始化,最后是构造器初始化,这是从我们的DOS结果看出来的(如果构造器初始化在前的话,输出就是0)。 在继承的时候,这个顺序已经澄清了。 要澄清的话
阅读全文
摘要:一. 谈论一个细节, 程序中有外部类和内部类,主函数和一般函数中都有一个新建内部类的对象。在编译运行的时候,出现了错误,如下所示。 为什么会有这样的错误出现?截图中说是69行出错了,我们现在将其注释掉,编译没有问题,为什么会这样? 为什么同样是new对象,主函数中的就不行呢?主函数是静态的,内部类是
阅读全文
摘要:一. inner内部类中方法的public必须带着,不然就编译失败?子类的权限要大于父类的权限么? 上面截图是常见的形式。接下来,简化成匿名内部类。 按照之前谈论的匿名内部类写法,发现在多个方法时,书写有困难。 我们现在想对一个对象进行多个方法调用怎么办?起名字就行了,借用以前的经验。 给它起个名字
阅读全文
摘要:一. 匿名内部类,内部类的匿名格式。之前学习过的匿名,是匿名对象。匿名对象是对象的简写格式。这里的匿名类也是如此。 简写是为了方便,三元运算符也是如此。刚开始写匿名内部类有点变扭,写多了就习惯了。 匿名内部类的简写有一个前提,不是所有内部类都能简写的。 简写都要有前提。if esle变简写必须有运算
阅读全文
摘要:一. 继续将之前的例子深化一下。现在要讲述的是内部类除了放置在成员上,还能放置在局部上。换句话说,就是哪都能放。 这里局部位置是指哪儿? 继续将程序补全,截图如下: 上面的截图其实交代了内部类在局部位置上的知识点,这里面有一定的规则。 截图中有两个位置创建内部类的对象,有一个没写完,只写了In,但是
阅读全文
摘要:一. 先书写一个特殊点的程序来学习一下内部类的知识点。 (在没有讲解前,先自己梳理一下,Outer这个外部类里的函数想要访问内部类,也必须创建内部类的对象) 编译运行的结果,我猜测是5。DOS结果显示,我们猜测没有错。 如果,我们想要输出的num是4,该怎么修改。我的想法是将method()方法体中
阅读全文
摘要:一. 介绍一下内部类的小特点。内部类的定义位置,相当于定义在了外部类的成员位置上。它就可以被成员修饰符所修饰。这是外部类所不具备的。学过的成员修饰符有:public, private, static, 这些都是。 接下来准备演示一下,(这里讨论的就是,在不同的修饰下,如何访问内部类) 这里知识点的讲
阅读全文
摘要:一. 内部类一般应用于设计。其实就是类定义的位置发生了变化。 截图举例的程序写的相当简单,直接编译,这里想说的是,编译后,由于内部类的存在会得到几个字节码文件。 最终的结果显示为三个类文件。内部类生成的类文件名为Outer$Inner.class,内部类有所属。 内部类本身就是一个普通的类,只是位置
阅读全文
摘要:一. 介绍一下多态中,有静态函数的例子。 (静态和动态的区别在哪儿?静态只能是所属类名来调用) 编译运行的时候,我觉着应该出错。原因是method()是父类静态方法,只能是父类名来调用,这里显然不是的。 DOS的结果存在,和我想像的不一样。而且输出的是父类的函数。 怎么静态输出的是父类中的方法?不是
阅读全文
摘要:一. 成员函数 这个是重点。 上面的程序,如果按照成员变量的思路来看,这里输出的应该是“fu show”,但是对象是不存放在对象中,除非有什么关键字来指向父类。如果在多态的情况下,介绍一下内存图解就很好了。 运行结果为zi show,前面讲述多态的时候,讨论的都是成员函数,这里又忘记了。这说明什么?
阅读全文
摘要:一. 下面讲述多态出现以后,继承体系中所涉及的成员的一些特点。 想要讨论多态,没有继承是不行的。 不写构造函数,是因为构造函数是固定在静态中,是子类的实现过程? 成员函数是非静态的。 接下来就对这个三个进行介绍。 接下来的讲解中,只介绍特殊情况,非特殊情况没有特点。 只要一说多态,就出现父类引用指向
阅读全文
摘要:一. 上面的截图是我们在多态的学习中所书写的语句,这样一来method()方法就可以提高复用性,不需要每一个物种的动物都去指挥它们吃饭。但是,需要a抓老鼠。再学习了多态的类型转化后,语句就可以修改成下面这样, 实际上,我认为这样的书写仅仅是为了使a能够调用抓老鼠的功能,并不符合真实的使用情况。因为这
阅读全文
摘要:一. 之前的举的例子,Animal a=new Cat(); 当动物的引用指向了猫对象的时候,这时候猫对象具备了两种形态。要么是猫的形态,要么是动物的形态。这时候,猫对象就具备了多态性。当父类指向子对象,这是一种提升。这叫向上转型。转成了动物类型。如果需要子类来进行操作的话,就需要向下转型。 现在再
阅读全文
摘要:一. 对整个流程进行一个梳理,主函数中开始是创建对象,通过对象来调用它的各种方法。后来,有了多态的概念,就改变了程序的写法。 开始的书写是双杠斜线省去的那部分,后面的那部分是多态的写法,dos的编译运行的结果如下, 由于是animal来运行,那么肯定没有子类的抓老鼠的功能。有的人说,非要抓老鼠,那么
阅读全文
摘要:一. 所有物种都能吃饭,这是可以肯定的,前期也是可以设置的,但是后期各个子类中的动作,比如“拱地”,“啃骨头”这些都是animal无法确定的,因此不会进行定义这样的方法。 如果非要使用,那就还要用各个子类去进行各自的调用,比如捉老鼠,啃骨头....这样就体现不了多态了。 实现是一种特殊的继承。为什么
阅读全文
摘要:一. 先举例,再通过例子来介绍多态的好处。 截图中的例子是非常标准的继承体系的程序的体现。Animal类中的void eat()类是指:动物都具备吃的功能,具体吃什么,不知道。 接着创建对象,运行程序,这是没有问题的。 截图中是创建了一个猫的对象,并调用了吃的动作。如果这里面不止一个猫,有好多猫,猫
阅读全文
摘要:一. 面向对象的第三个特征-多态。怎么理解多态,就是多种形态。 之前已经见识过多态,就函数而言,它就具备多态的特点。比如说它的参数列表不同,它的存在形态就不一样。同样一个函数,有的放在父类里面,有的放在子类里面,这样不一样。这就是函数的多态性。→那是否意味着讲到多态,可能涉及很多方面。 重点集中在对
阅读全文
摘要:一. 把接口这个知识,给它深化一下。 再开发的时候,先设计接口,再开发程序,最后考虑扩展功能。 定义应用程序之前,先把规则定义好。我的应用程序当中,就在使用这个规则。规则就是接口,后来的外加设备,就是接口的实现。 接口的两个作用,定义规则使用规则,另一个就是实现规则。 接口是like,怎么理解呢?子
阅读全文

浙公网安备 33010602011771号