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

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • Test test = new Test();  这里的Test()就是构造方法;

        构造方法的作用只有一个,就是创建(实例化)对象,构造方法就是为了构造对象的。

        构造方法都是没有返回值的,和类名是相同的;

         构造方法分为有参和无参,如果自己不定义,系统会自动默认定义一个无参构造方法。


    查看全部
  • 静态方法中可以直接调用同类中的静态成员,但不能直接调用肥静态成员!

    但是可以通过创建对象的形式通过对象来访问非静态对象。

    查看全部
  • 用static修饰方法,称为静态方法或类方法

    1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员,如:

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

    2. 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后同过类的对象来访问非静态变量,如:

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

    3. 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如:

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

    4. 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法,如:

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

    查看全部
  • 重写的equals()比较:

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

    如图:

    1、先比较的是两个对象的内存地址是否相同,如果相同,那么代表是一个对象(dog.equals(dog))返回true;

    2、第二个是看要比较的另一个对象是否为空,如果为空,则不需要继续比较了;

    3、第三个比较的是类对象,类对象就是在调用getClass()方法时获得的,类对象描述的是类的代码信息,比如一个类有哪些属性、哪些方法、是什么类型等等。

        第三个判断两个类对象类型是否相同;

        在new一个类的时候获得的是类的对象,类的对象描述的是类的具体属性的值,比如一个类有age、name属性,而age是15,name是小花等等。如图:

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

    4、当第三步判断两个对象的类型是相同的之后,就都转换成一个类型(其实是多余的,但是还是要在多做一步),转换成一个类型之后,就可以判断这两个对象的属性值了。

    总结,不重写的equals(),判断的是对象的引用;重写的equals()判断的是对象的属性值是否相同。


    查看全部
  • 1、 如果想判断同一个类实例化的两个对象的属性数据值是否相同,可以重写equals()方法。

    2、重写equals():"source-->https://img1.sycdn.imooc.com//5bd02c970001795502860022.jpg"

    3、重写之后,调用equals(),进行比较,比较的就是选择的对象的属性的值是不是相同的了,而不是两个对象的引用相互比较了。

    注意:如果对象有多个属性,在重写equals()时会提示要比较的属性,选择几个就比较几个。

    查看全部
  • equals():比较的是对象的引用是否指向同一块内存,也就是是不是完全相同。而不是比较对象是否相同。

    查看全部
  • 所谓对象,其实就是一个引用,我们通过对象来使用内存,使用dog,animal类。类似于我们通过遥控器来控制电视,切换频道。对象就相当于遥控器。

    查看全部
  • 注意:如果对象有多个属性的时候,如果重新toString(),那么是下面这种形式:

    https://img1.sycdn.imooc.com//5bd027cc0001bbc609340234.jpg这时候也是可以输出多个值:

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

    查看全部
  • 重写Object类的toString方法:

    1、如果输出一个对象的话,会默认输出对象在内存中的地址:

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

    2、如果我们想获得对象的属性的话,可以重写父类Object中的toString()方法来获得:在“source --> Generate toString ”,选择之后,myeclipse会提示需要重写的属性,选择所需要的即可:

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

    重写toString之后以此种方式呈现:

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

    这个时候如果再输出dog对象的时候,就会输出对象的属性:

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

    查看全部
  • https://img1.sycdn.imooc.com//5bd0266c000199f711970636.jpg

    1、接口关键字是interface,取代了class,且一定有abstract修饰符,可以不用写,系统会隐式的添加

    2、接口是要被继承的,因此不能用private和protected修饰

    3、接口只能继承接口,且可以继承多个,格式是:接口名[extends 父接口1,父接口2......]

    4、接口里面常量必须用public static final修饰,public和final比较好理解,static是因为接口不能实例化,必须在加载接口时就要为这个常量开辟空间,因此必须用static修饰

    5、抽象方法是必须要被实现的,因此不能用static修饰,以防出现非静态类无法调用静态方法

    6、接口也经常与匿名内部类联合使用,格式是:接口名 a = new 接口名(){代码体};从此可以看出new在此处并没有创建对象,后面跟的是构造函数


    查看全部
    0 采集 收起 来源:Java 中的接口

    2018-10-24

  • Object类是所有类的默认父类,如果一个类没有明确知名extends哪个父类,那就是Object的子类,可以继承Object中的任何属性、方法。

    查看全部
  •         之前说过,如果在类中没有声明构造方法,那么系统会自动生成无参的构造方法,如果声明了一个有参的构造方法,那么系统不会再生成无参的构造方法。

            如果在父类中定义了一个有参的构造方法,而子类中又隐式调用了一个无参的父类的构造方法,那么因为父类中没有此构造方法,所以会报错。

    查看全部
  • 1、之前说,创建子类对象时,是先隐式的创建了父类的对象;也就是在执行子类构造方法时,先隐式的执行了父类的构造方法;

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

    也就是说,子类Dog的构造方法中,隐式的利用super()方法调用了父类Animal类的构造方法(注意在这里super()即代表父类构造方法),但是super()是隐式的,也就是我们看不见,但是系统会自动生成,当然也可以手动写出来,如果不写,系统就会自动生成;

    2、如果我们不显式调用,系统会自动帮我们调用,默认调用的是无参的构造方法;

    3、如果显式调用父类的构造方法,也就是如果要写出super(),那么super()必须在子类构造方法的第一行;

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

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

    如图,如果super()没有写在子类构造方法的第一行,那么就会报错。

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

    1. 作用域的不同

      局部变量的作用域仅限于定义它的方法

      成员变量的作用域在整个类内部都是可见的

    2. 初始值不同

      Java会给成员变量一个初始值

      Java不会给局部变量赋予初始值

    3. 在同一个方法中,不允许有同名局部变量

      在不同的方法中,可以有同名的局部变量

    4. 当成员变量与成员变量重名时,系统有限取局部变量的值

    查看全部
  • 1、super:代表父类对象,使用在子类中;

    2、使用方式:super.属性、super.方法();访问的都是父类的属性、方法;



    查看全部

举报

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

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