为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第二季 升级版_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第二季 升级版

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • 无参的构造方法:创建无参对象时自动执行

    创建对象分为通过有参和无参的构造方法两种

    当没有指定构造方法时,系统会自动添加一个空的无参的构造方法

    构造方法的重载:方法名相同,但参数不同的多个方法;调用时会根据不同的参数选择相应的方法。

    查看全部
  • 1、<br/><br/>你可能会写如下2个方法<br/>feed(Cat cat){&nbsp;&nbsp;&nbsp; }<br/>feed(Dog dog){&nbsp;&nbsp;&nbsp; }<br/>如果Cat、Dog都是Animal的子类,那你就可以写成<br/>feed(Animal animal){&nbsp;&nbsp;&nbsp; }<br/><br/>Animal a1=new Dog();&nbsp;&nbsp;&nbsp; //父类引用指向子类对象<br/>Animal a2=new Cat();<br/>feed(a1);<br/>feed(a2);<br/><br/>有人说这是面向接口编程,可以降低程序的耦合性,即调用者不必关心调用的是哪个对象,只需要针对接口编程就可以了,被调用者对于调用者是完全透明的。让你更关注父类能做什么,而不去关心子类是具体怎么做的,你可以随时替换一个子类,也就是随时替换一个具体实现,而不用修改其他.<br/><br/><br/>2、<br/><br/>多态最主要的作用是增加代码的扩展性<br/><br/>比如最基本的一个方法 equals ,他是Object类的一个方法&nbsp;&nbsp; 完整写法是 public boolean equals(Object obj)<br/><br/>注意这里的参数类型使用的是Object&nbsp;&nbsp; 而Object又是所有类的父类,所以你在调用这个方法的时候,这个参数可以传入Object的子类对象--即任意对象,所以这个方法适用于任何对象<br/><br/>如果没有多态 这个方法就不能这么写,参数只能写一个具体的类,那么这个方法的适用范围就只是这一个类.......<br/><br/><br/>3、<br/><br/>&nbsp;假设有一个Animal的父类,Dog、Cat子类<br/><br/>如果你在代码中,事先申请<br/>private Animal an;<br/><br/>这样的好处是什么呢? An的实际类型在运行的时候才能具体确定,他可以是Dog Cat 或者Animal。因为你可以写:<br/>an = new Animal();<br/>也可以写:<br/><br/>an = new Dog();<br/><br/>或<br/><br/>an = new Cat(();<br/><br/>如果你一开始就申明了一个是Dog an; 那么你的an就只能是Dog 那么代码就不够灵活,以及的扩展的时候就不方便扩展。<br/><br/>当然,如果你确定an 只可能是DOG 不会为其它类型的时候,两种写法都是可以的。<br/>--------------------- <br/>版权声明:本文为CSDN博主「Panix2n_n」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。<br/>原文链接:https://blog.csdn.net/mercy_ps/article/details/80616405
    查看全部
  • 抽象类给定子类相应的限制,规定子类应当具备哪些方法,不关注子类的具体实现

    查看全部
  • 使用规则:

     1.定义抽象类

     2.定义抽象方法,之生命,不需要实现

     3.包含抽象方法的类是抽象类

     4.抽象类中可以有普通方法,也可以没有抽象方法

     5.抽象类不可以直接创建,但可以定义引用变量

    查看全部
  • 应用:1.父类知道子类应包含的方法,而不知道如何实现

               2. 对多个具有相同特征的类中抽象一个作为子类模板

    限定实现方法,不关注细节完成



    查看全部
  • instanceof只是判断一个对象是否某个类或者子类的对象或者实例,换句话说instanceof只是用来规避有风险或出错的强制转换,而不是转换的本身。对象之间能否转换而风险或出错取决于对象之间的相互关系。

    查看全部
  • Anmal obj1 = new Anmal();

    Anmal obj2 = new Dog();   父类的引用指向子类对象,但是父类的引用不可以调用子类的特有的方法。

    https://img1.sycdn.imooc.com//5d4c0dca0001fdda07660426.jpg

    查看全部
    0 采集 收起 来源:Java 中的多态

    2019-08-08

  • Dog other = (Dog) obj;

    类型  新建对象 = (需强制转换类型) 传入的对象

    查看全部
  • 类的对象(obj):关注属性值的信息(也就是具体数据)

    类对象(obj.getClass()):关注代码(也就是数据所属的名称)

    https://img1.sycdn.imooc.com//5d4bf8780001f4b503430399.jpg

    查看全部
  • equals()比较的是对象的引用,而不是对象本身或其具有的属性

                            比较是否指向同一块内存地址,有点类似于指针

                           在对比对象时:dog.equals(dog2)与dog == dog2是等价的都是比较的指向地址


    若是需要比较其本身或属性,则需要重写  source->

    equals()返回值是bool类型,故通常可与if配对使用

    查看全部
  • tostring 可以同时输出多项属性<br/>
    查看全部
  • toString()方法   返回为哈希码(对象地址的字符串)

                                可通过重写表示其属性

                             菜单栏中source->Generate toString()....

    查看全部
  • super关键字:在对象内部使用,可代表父类对象

                          可访问父类属性,方法

    子类的构造过程中会执行父类构造方法并自动创建父类对象

    隐式调用父类的构造方法   super();

    显式调用则需将其放在子类构造方法的第一行


    若父类中的构造方法含参,则子类需显式调用以传参

    查看全部
  • 1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。

    2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。

    3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。



    查看全部
  • 成员变量和局部变量的区别

    查看全部

举报

0/150
提交
取消
课程须知
本课程是Java开发的基础,需要大家:掌握 Java 基本语法的使用。如果您是新手,建议先移步 《Java入门第一季》https://www.imooc.com/learn/85
老师告诉你能学到什么?
• 掌握 Java 编程思路 • 熟练运用面向对象程序设计思想
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!