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

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • 1、多态是基于继承之上的,只存在于父类和子类之间,那么多态中的引用类型转换,必然也是存在于父类和子类之间的对象引用类型转换;

    2、引用类型转换有两种:

        向上类型转换:小类型到大类型,即对象由子类类型转换为父类类型;

        向下类型转换:大类型到小类型,即对象由父类类型转换为子类类型;

    3、向上类型转换:就像是把茶杯里的水倒进茶壶

        系统默认无风险,可以进行默认转换(隐式/自动类型转换)

        如下可以把子类Bus类型对象转换成父类Vehicle类型

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

    4、向下类型转换:就像是将茶壶里的水倒进茶杯

        系统认为是有风险的,所以不能默认转换。如下,虽然父类对象ve是子类类型转换的,但是系统仍然认为是父类对象类型,不能默认转换:

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

    但是可以进行强制类型转换,在父类对象前加上子类类型:

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


    但是如果再把父类对象ve强制转换为子类Ship类型,编译没问题,但是运行时会报错:

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

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

    因为ve其实是由子类Bus类型转换的,而引用类型转换只能在父类和子类之间相互转换,不能是两个子类之间转换;

    这个时候可以用到“instanceof”进行判断,防止出错(注意instanceof只是进行判断,并不能完成转换功能,两个子类之间不可以转换)

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

    从图中可以看出:判断出来对象ve是子类Bus类型的,所以可以和转换为bus1,但是ve和子类Ship不是一个类型,所以不能转换。

    查看全部
  • 内部类的定义:内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。

    内部类的作用:

    1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

    2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

    3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

    内部类分为:

    • 成员内部类

    • 静态内部类

    • 方法内部类

    • 匿名内部类


    查看全部
  • 引用类型转换:

            指的是对象的引用类型转换,比如说Animal类型的和Dog类型的对象之间的转换,而不是说什么String int double之间的转换,那个是数据类型,而不是引用类型。

            记住引用类型指的是对象之间的引用类型转换。

    查看全部
  • 方法的多态:

    1、基于引用的多态之上,当父类创建父类对象时,父类对象调用的方法就是父类的方法;

    2、当父类创建子类的对象时,通过子类对象调用的方法则是子类继承的方法或者是子类重写的方法;

    父类方法:

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

    子类重写的方法:

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

    子类没有重写自己的方法:

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

    父类对象调用父类方法,父类创建的子类对象调用重写或者继承的方法:

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

    3、但是通过父类创建的子类对象,不能调用子类自己新增的方法;

    子类创建自己的方法:

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

    父类创建的子类对象调用子类自己的方法,报错:

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

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

    2018-10-25

  • 包的使用:

        1.可以通过import关键字,在某个文件使用其它文件中的类。

            例如:import.com,imooc.music.Myclass

        2.Java中,包的命名规范是全小写字母拼音

        3.使用的时候不但以加载某个包下的所有文件

            例如:com.imooc.*;

            也可以加载某个具体子包下的所有文件

            例如:com.imooc.music.*;

    查看全部
  • UML:标准建模语言。是一个模型化的软件系统开发的图形化语言。为软件开发的所有阶段提供模型化和可视化支持。

    常用的三种UML图:

    用例图:系统中出现的实例需要实现什么功能。

    序列图:用于按照交互发生的一系列顺序,现实对象之间的这些交互。

    类图:在java中主要用来描述类和类之间的关系,类有哪些属性,有哪些方法。


    查看全部
    0 采集 收起 来源:UML 简介

    2018-10-25

  • 引用的多态:

    1、父类可以创建父类自己的引用对象,是指向自己的对象;

        Vehicle vee = new Vehicle();

    2、父类也可以创建子类的引用对象,是指向子类的对象;

        Vehicle bus = new Bus();

        Vehicle ship = new Ship();

        Vehicle plane = new Vehicle();

    3、但是不能使用子类的对象指向父类,就是不能由子类创建父类的对象:

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


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

    2018-10-25

  • 多态:即多种形态,指的是对象的多种形态。

    1、多态分为两种:引用的多态;方法的多态;

    2、多态是基于继承的条件上的,因为多态是存在于父类和子类之间的多态;



    1、 多态:同一行为具有多个不同表现形式或者形态的能力,类似于一个接口,可以有多个实现类,每个实现类实现接口的同一方法是不同的,都实现吃这个接口,实现类a可以吃冰棍,实现类b可以吃大米饭,这就是多态

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

    2023-09-22

  • 封装的概念:将类的某些信息影藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

    封装的好处:

        1.只能通过规定的方法访问数据

        2.隐藏类的实例细节,方便修改和实现

    https://img1.sycdn.imooc.com//5bd11f180001029f15090864.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-25

  • 抽象类:abstract:约束子类有什么方法,并不关注怎么去实现

    1. 使用规则:包含抽象方法的类是抽象类,但抽象类也可以没有抽象方法

    2. 在选择class的时候会,记得选择abstract

      父类中的写法:

      public absstrat message();

      子类中则正常定义则可 public void message(){}

    3. 另一个类要选择继承抽象类(父类)

    4. 创建了子类后,自动出现抽象模块

    5. 最后调用::父类类名   对象名=new  子类类名,对象名.方法();


    查看全部
  • 多态中的引用类型转换:

    1. 向上类型转换:(小类型转换成大类型,隐式转换)

      如Dog dog=new Dog();

      Animal animal=dog;

    2. 向下类型转换:(大类型转换成小类型,强制类型转换

      如Dog dog2=animal;虽然此中的animal就是dog,但系统会报错,可改成:Dog dog=(Dog)animal;

      若是:Cat cat=(Cat)animal,则运行后系统会报错

    3. 可通过instanceof和if语句进行类型判断;

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

    变量区别a

    查看全部
  • 静态初始化:在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果static修饰初始化块,就称为静态初始化

    注意:静态初始化只在加载时执行,且只会执行一次,同时静态初始化只能给静态变量赋值,不能初始化普通的成员

    查看全部
  • Test test = new Test();  这里的Test()就是构造方法;

        构造方法的作用只有一个,


    查看全部

举报

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

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