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

Java入门第二季 升级版

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • 什么是 Java 中的内部类

    问:什么是内部类呢?

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

    问:那为什么要将一个类定义在另一个类里面呢?清清爽爽的独立的一个类多好啊!!

    答:内部类的主要作用如下:

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

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

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

    问:内部类有几种呢?

    答:内部类可分为以下几种:

    • 成员内部类

    • 静态内部类

    • 方法内部类

    • 匿名内部类


    查看全部
  • Java 中的 static 使用之静态初始化块

    Java 中可以通过初始化块进行数据赋值。如:

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

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

    我们来看一段代码:

    运行结果:

    通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

     


    查看全部
  • public class HelloWorld {

        

        String name; // 声明变量name

    String sex; // 声明变量sex

    static int age;// 声明静态变量age

        

        // 构造方法

    public    HelloWorld    () { 

    System.out.println("通过构造方法初始化name");

    name = "tom";

    }

        

        // 初始化块

    System.out.println("通过初始化块初始化sex");

    sex = "男";

    }

        

        // 静态初始化块

           static { 

    System.out.println("通过静态初始化块初始化age");

    age = 20;

    }

        

    public void show() {

    System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);

    }

        

    public static void main(String[] args) {

            

            // 创建对象

    HelloWorld hello = new HelloWorld();

    // 调用

    hello.show();

            

    }


    查看全部
  • public class HelloWorld {

        

        // 定义静态变量score1

        static int score1 = 86;

        // 定义静态变量score2

      static  int score2 = 92; 


        // 定义静态方法sum,计算成绩总分,并返回总分

    public  static int sum() { 

    int   sum=score1+score2;

        return sum;

          

          

          

    }


    public static void main(String[] args) {

            

            // 调用静态方法sum并接收返回值

    int allScore = HelloWorld.sum();

            

    System.out.println("总分:" + allScore);

    }

    }


    查看全部
  • Java 中的 static 使用之静态方法

    与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。静态方法的使用如:

    运行结果:

    需要注意:

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

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

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

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


    查看全部
  • Java 中的 static 使用之静态变量

    大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了!!

    Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~

    使用 static 可以修饰变量、方法和代码块。

    本小节,我们先认识一下静态变量。

    例如,我们在类中定义了一个 静态变量 hobby ,操作代码如下所示:

    运行结果:

    要注意哦:静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!~~


    查看全部
  • 方法内部类不能使用访问控制符和 static 修饰符

    查看全部
  • 要先创建外部类对象之后

    再通过外部类对象创建内部类的对象后才能调用内部类对象的方法 https://img1.sycdn.imooc.com//5cef93ca0001e20b03770149.jpg

    查看全部
  • 接口:

    1. 概念:类是一种具体实现的体,而接口定义了某一批所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里的方法实现细节,他只规定这些类里必须提供某些方法。

    2. 定义:不用class用interface关键字

    3. 接口定义的基本语法:

      [修饰符] abstract interface 接口名[extends 父接口1,父接口2...]

      {

      零到多个常量定义...

      零到多个抽象方法定义...

      }

    ⚠️:接口就是用来被继承,被实现的,修饰符一般建议用public 不能使用private/protected修饰接口

    接口定义:

        常量:接口中的属性是常量,即使定义是不添加,public static final  修饰符,系统也会自动加上。

        方法:接口中的方法只能是抽象方法,总是使用,即使定义是不添加 public abstract 修饰符,系统也会自动加上。

        使用接口:一个类实现一个或多个接口,实现接口使用implements关键字。Java中一个类只能继承一个父类,不够灵活,通过实现多个接口可以做补充。

    继承父类实现接口的语法为:

    [修饰符] class 类名 extends 父类 implements 接口1,接口2...

    {

    类体部分//如果继承了抽象类,需要实现继承的抽象方法;要实现接口中的抽象方法。

    }

    //如要继承父类,继承父类需在实现接口之前

    接口的使用:在接口的使用当中,经常与匿名内部类配合使用

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


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

    2019-05-31

  • 抽象类:

    1. 语法定义:抽象类前使用abstract关键字修饰,则该类为抽象类

    2. 应用场景:

    • 在某些情况下,某个父类只知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法

    • 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模版,从而避免了子类设计的随意性。

    3.作用:限制规定子类必须实现某些方法,但不关注实现细节

    4.使用规则:


    abstract定义抽象类


    abstract定义抽象方法,只有声明,不需要实现


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


    抽象类中包含普通的方法,也可以没有抽象方法


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


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

    1. 向上类型转换(隐式/自动类型转换)是小类型到大类型的转换

    2. 向下类型转换(强制类型转换)是大类习性到小类型

    3. instanceof运算符来解决引用对象的类型,避免类型转换的安全性问题


    查看全部
  • 类的特点
    查看全部
  • 多态:

    对象的多种形态

    1. 引用多态:

      父类的引用可以指向本类的对象 ex: Animal obj1 = new Animal();

      父类的引用可以指向子类 ex: Animal obj2 = new Dog();

    2. 方法多态:

      创建本类对象时,调用的方法为本类方法

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

    3. https://img1.sycdn.imooc.com//5cee46130001a32909620530.jpg

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

    2019-05-29

  • 抽象类中的抽象方法必须实现,其余的方法选择性的实现。

    接口中的方法都需要实现

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

    2019-05-29

  • 程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。
    静态初始化块只在类加载时执行一次


    查看全部

举报

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

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