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

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等

    2、 Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性a

    3、 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );


    查看全部
  • 程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

    查看全部
  • this关键字

    this表示的是当前对象,封装对象属性的时候经常会用。

    比如new了一个Phone类,类的属性 :

    private float screen;

    类的方法:

    public sendMessage(){
    }

    那么在本类的方法中用this.screen就表示了当前对象的属性;this.sendMessage()就表示了当前对象的方法

    比如创建set方法,通常类的属性与要传的变量值相同,那么用this来区分,

    this.screen表示类的属性,screen表示属性的值

    this.screen = screen;

    用this.sendMessage表示类的方法

    this.sendMessage();


    查看全部
  • 访问修饰符:

    public、protected、private、default(不写修饰符)

    层级目录:

    包、本类、子类、其他(包)

    public修饰,可以在任意位置使用

    protected修饰,可以在同包、本类、子类中使用

    private修饰,只允许本类中使用

    默认不写,可以在同包中使用

    查看全部
  • 继承-------super关键字

    在对象内部使用,可以代表父类对象

    子类的构造过程当中必须调用其父类的构造方法

    如果子类的 构造方法没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法 (如果子类构造方法中既没有显示调用父类的构造方法,二父类又没有无参的构造方法,则编译出错)

    如果显示的调用构造方法(super()),必须在子类的第一行

    查看全部
  • 系统中的包:

    java.lang.(类)包含java语言基础的类

    java.util.(类)包含java语言中的工具类

    java.io.(类)包含java语言中输入、输出功能的类

    包的意义:

    两个相同的类不能放于同一级目录,要用不同的包以示区分

    定义一个包用package关键字用“”.“”区分包的层级

    比如:package com.imooc.first

    package com.imooc.second

    那么在first和second目录下,都可以建立自己的类,比如Phone,相互不影响,类的第一行会显示属于哪个包

    引入一个包用import关键字

    比如:import com.imooc.first,此时如果调用Phone类,那就是first包中的Phone类

    查看全部
  • final关键字:

    可以修饰  类   方法   属性   变量

    final修饰类时,则该类不允许被继承

    final修饰方法时,方法不允许被重写

    final修饰属性   则该类的属性不会进行隐式的初始化(必须声明并赋值)或在构造方法中赋值(只能选其一)

    final修饰变量,则这个变量不会被更改,所以我们也称为常量

    查看全部
  • 继承初始化的顺序:

    初始父类再初始子类

    先初始化对象中的属性,再执行构造方法的初始化,构造方法中会覆盖对象的值,也就是说执行后的结果是构造方法中的属性值。

    查看全部
  • public、protected、private是修饰符,可以修饰变量、方法、代码块。

    如果不加修饰符,那么,其他类在调用本类的变量的时候,是可以修改属性值的,比如Phone类定义了cpu = 5; 然后Xiaomi类调用Phone类中的cpu变量时,可以改成cpu = 6

    用封装,就是为了避免这种问题的发生。用private 修饰属性,这样只能在本类中修改,其他类在调用的时候,是无法修改属性值的

    用private封装后,本类中加上set和get方法,这样,其他类在调用本类时,就可以通过set和get方法,重新设置或直接获取本类属性值了,set和get方法用public修饰,大家都可以用,但有private对属性的限制,所以其他类不能随意修改本类的属性值

    set和get方法,命名方式是set/get+属性名,比如setScreen、getScreen

    定义一个变量

    float screen;

    set方法设置属性值的时候,设置就好,不需要返回值,所以用void。要设置就要传入对应的变量值才行,所以要加一个参数,参数类型与要设置的变量类型一致

    public void setScreen(float newScreen){
         //属性screen的值是传入的float型的newScreen
         screen = newScreen;
    }

    get方法获取属性值的时候,是需要有返回值才知道获取的属性值是什么,所以void要替换成返回值类型,方法要加上return

    public float Screen(){
        return screen;
    }

    这样,其他类在调用本类方法的时候,通过setScreen方法来设定属性的值;通过get方法直接获取本类属性的值

    封装用private隐藏了类的属性,允许其他类通过set/get方法调用来设置或直接获取属性值

    查看全部
  • 什么是方法的重写:

    子类对继承父类的方法不满意,可以重写父类的继承的方法,当调用方法时,优先调用子类的方法

    重写的规则:

    返回值类型   方法名  参数类型及个数都要与父类的继承方法相同。

    查看全部
  • 初始化块、静态初始化块、构造方法,都是用于对类进行初始化并赋初值,当创建类的实例即实例化的时候,就会加载这些代码块或构造方法。区别在于:

    静态初始化块在类加载的时候只会执行一次

    执行顺序:静态代码块>代码块>构造方法

    静态初始化块只能给静态变量赋初值

    //构造方法
    public HelloWorld(){
    //code
    }
    //初始化块
    {
    //code
    }
    //静态初始化块
    static{
    //code
    }
    
    //主函数中创建类的实例对象时,只有第一次实例化时,静态代码块会被调用,第二次的时候静态代码块就不再被调用了
    HelloWorld hello = new HelloWorld();
    HelloWorld hello2 = new HelloWorld();


    查看全部
  • 静态方法与非静态方法。

    静态方法就是在方法前用static修饰,这样就相当于多了一层条件。

    静态方法在调用变量的时候,如果是静态变量,大家都是静态的,那可以直接拿来用;如果是非静态变量,那要先创建类的对象,也就是把类进行实例化后再拿来用

    而非静态方法是可以直接用静态和非静态变量的



    查看全部
  • 静态变量可以直接只用类名来访问,不需要创建类的对象,也就是说省去了用构造方法实例化的步骤。

    也可以创建类的对象通过对象名来访问静态变量,这和直接通过类名来访问不冲突

    也可以创建类的对象,并修改静态变量的值然后通过对象名来访问静态变量

    静态静态成员为整个类所共有,只要该类被加载,就会一并加载该类所有的static成员,直到该类卸载前都可以用

    public class HelloWorld(){
    //定义一个静态成员变量
    static String className = "Java测开一班";
    //定义一个非静态成员变量
    int classNum = 60;
        public static void main (String[] args){
        //静态变量可以直接通过类名来访问
        System.out.println("班级名称为"+className);
        //非静态变量必须先把类实例化后才能用,要不然会报错的
        HelloWorld hello = new HelloWorld();
        System.out.println("班级人数为:"+classNum);
        }
    }


    查看全部
  • 定义一个类的步骤:

    1. 定义类名

    2. 编写类的属性

    3. 编写类的方法

    查看全部
  • 构造方法,目的只有一个,创建一个对象,初始化对象的值

    Phone phone = new Phone();

    其中new后面,Phone()就是一个构造方法,它与类名相同


    构造方法分为无参、有参两种。

    如果类中没有写构造方法,在其他类调用的时候默认是创建一个无参的构造方法的。

    如果类中有有参的构造方法或自定义过其他的无参构造方法,就不再默认创建了

    查看全部

举报

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

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