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

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • 封装。
    查看全部
  • 封装的实现步骤
    查看全部
  • 项目思路
    查看全部
    0 采集 收起 来源:综合练习

    2017-08-13

  • 引用类型转换的具体实现,内存等具体问题
    查看全部
  • 注意:抽象方法没有方法体以分号结尾
    查看全部
  • 抽象类使用规则
    查看全部
  • 局部变量具有更高优先级
    查看全部
  • 成员变量有默认初始值,局部变量没有默认初值,需要初始化
    查看全部
  • 引用类型转换: 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换。 如:Dog dog=new Dog();Animal animal=dog;//正确,自动类型提升,向上类型转换 2.向下类型转换(强制类型转换),是大类型到小类型的转换(存在风险,溢出) 如:Dog dog1=(Dog)animal;//向下类型转换 3.instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题。如: Dog dog=new Dog(); Animal animal=dog; Cat cat=(Cat)animal;//编译时不会出错(按Cat类型进行编译),但运行时会报错,因为它开辟的是Dog类型的空间,而(无法将引用类型进行转换)无法将dog对象转换成Cat类型,并且此方法对程序的安全性有影响。此时应该利用instanceof和if语句结合使用,进行验证,以保证程序的安全性,如: if(animal instanceof Cat){//判断animal类中是否包含Cat类型的元素,若包含则进行转换,instanceof返回值为布尔类型 Cat cat=(Cat)animal;}else{ System.out.println("无法进行类型转换");}
    查看全部
  • 1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。 2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量, 3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
    查看全部
  • 接Dog other=(Dog) obj 当判断两个对象的类型一致时,将其中一个对象的类型转换为与另外一个相同的Dog类型, 进而判断两个对象的属性值是否相等,如果一致,那么这两个对象就是相等的
    查看全部
  • Object的另外一个方法equals() 作用:判断两个对象的引用是否指向同一个内存地址(即判断是否为同一个对象) 例:Dog dog=new Dog(); Dog dog1=new Dog(); if(dog.equals(dog1)) System.out.println("是同一个对象"); else System.out.println("不是同一个对象"); 由于equals()方法的结果是布尔类型,所以这里也可以这样写 if(dog==dog1) 注意:这里比较的是对象在内存中的地址是否一致,与对象的属性无关。 但是往往在生活中,我们是需要判断两个对象的值是否相等,所以由于父类的方法无法满足我们的需求,我们需要在子类中重写这个方法。 在eclipse中,左上角Source(或者代码编辑框右键),Generate hashCode() and equals() 选择类中需要进行判断的属性,然后软件会自动帮我们写好方法的重写 通过观察生成的代码可以发现主要是通过4个方面来判断两个对象的值是否相等 public boolean equals(Object obj){ if(this==obj) //通过判断引用地址是否相同(即判断是不是指向同一个对象) return true; //如果相同,那么同一个对象的值当然是相等的 if(obj==null) //通过判断其中一个对象是否是空值 return false; if(getClass() != obj.getClass()) return false; Dog other=(Dog) obj; 这里是通过getClass得到一个类对象,这个类对象跟new 对象有些区别 类对象:关注的是类的代码信息,即类型(如name,age,high,weight) new 对象(类的对象):关注的是类的数据信息,即类型的值(如name="小强",age=20,high="165cm",weight="165kg") 所以这里通过getClass()来获取两个对象的类型,并判断是否一致,如果两个对象的类型都不一致了,那么这两个对象就肯定不相等。
    查看全部
  • 多态: 指的是对象的多种形态 主要分为 引用多态 、方法多态 继承是多态的实现基础,别忘了子父类要有继承关系. 多态特性: 一、引用多态 1.父类引用可以指向本类对象 Animal obj1 = new Animal(); 2.父类引用可以指向子类对象 Animal obj2 = new Dog(); 但是我们不能用子类的引用指向父类对象 Dog obj3 = new Animal();//错 二、方法多态 1.在父类Animal中定义一个eat()方法,输出一个语句(动物有吃的能力); 在子类Dog中重写eat()方法,输出一个语句(狗是吃肉的); 那么我们在测试类main函数里面,如果obj1.eat() ,那么调用的是父类的方法. 若用obj2调用eat()方法,那么调用的是子类的方法. 2.还有一种情况,比如创建一个继承父类Animal的子类Cat ,但是Cat里并不重写继承的eat()方法. 然后,我们在测试类main函数里创建一个子类对象, Animal obj3 = new Cat(); 然后调用 obj3.eat(); 那么,结果调用的则是子类继承父类的方法. (输出结果:动物有吃的能力) 3.最后一种特殊情况,多态的特性是不能使用的. 若在子类添加一个独有的方法 public void watchDoor() ,含有一句输出语句(狗具有看门的能力); 那么我们在测试类的main函数当中(得先定义好对象Animal obj2 = new Dog() ),就不能用obj2.watchDoor(),即不能通过父类的引用调用子类的方法.
    查看全部
    0 采集 收起 来源:Java 中的多态

    2017-08-12

  • 通过匿名内部类的方式实现一个接口
    查看全部
    0 采集 收起 来源:Java 中的接口

    2017-08-12

  • 继承父类实现接口的语法:
    查看全部
    0 采集 收起 来源:Java 中的接口

    2017-08-12

举报

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

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