• java学习日记(8-13)


    ###############  day08 eclipse 使用   #####################
    Alt+/ 自动补全 syso
    shift + enter 到下一行行首
    ctrl+shift+f 格式化代码
    ctrl+/ 单行注释
    ctrl+shift+/ 多行注释
    ctrl+shift+o 导包
    Alt+上下箭头 移动代码行
    ctrl+d 删除
    ctrl+1 意见提示

    // 块编辑 alt+shift +a
    // 变大写 ctrl+shift+x
    // 变小写 ctrl+shift+y
    // 向下复制一行 alt+ctrl+↓
    // 向下添加一个空行 shift + enter
    // 向上添加一个空行 ctrl+shift + enter
    // 删除一行 选中行 ctrl+d
    // 注释或者去掉注释 ctrl+/
    // 向下移动一行 alt + ↓


    import导入工程

    ############## day09 类 day10 继承 ##########################
    局部变量没有默认值,跟随方法进入栈中
    成员变量跟类对象进入堆中
    private 修饰成员变量,本类可见
    类方法的就近访问原则
    this.name 同C++的this指针
    p.speak() 在调用的时候,同时把地址传给this

    extends java单继承
    子类调用成员变量,方法,重名时采用就近原则
    也可用this,super表明本类与父类
    implements 实现接口,必须重写所有方法

    override 重写
    子类方法的权限大于等于父类方法的权限

    public
    protected 可以在不同包下子类中使用
    default 本包内使用,不写任何权限, 默认为default
    private

    public abstract class 抽象类,不能实例化对象
    public abstract void work(); 抽象方法必须存在抽象类中
    只要有抽象方法,就一定是抽象类
    抽象类可以没有抽象方法

    子类必须重写父类抽象方法

    ################### day11 接口 ##################
    interface 成员方法全抽象,成员变量为常量
    public abstract 返回值类型 方法名(参数列表) # 成员方法必须此格式
    public static final int a = 1;
    # 可以不写修饰符,选择性写修饰符,但本质是一样的

    可以实现多接口,但多个接口不能有相同的(函数名,参数列表)返回值不同
    接口可以 extends 别的多个接口

    多态 FU f = new ZI()  父类(接口)引用指向子类对象
    出现自动类型提升,子类提升为父类类型,向上转型
    只能调用父子共有的方法,不能调用子类特有的方法
    ZI z = (ZI)f 向下转型

    #多态

    成员变量,静态成员方法
    编译看父类
    运行看父类
    f.a 调用的是父类的成员变量,若无,报错

    非静态成员方法
    编译的时候看父类
    运行的时候看子类

    instanceof 判断一个引用变量是不是某个类对象
    p instanceof People

    ########### day12 构造方法,this, super ##########
    构造方法格式 权限 类名(参数列表) 同C++,默认有无参构造方法规则,同C++

    this(参数列表) 在一个构造函数中调用另一个构造函数,必须写在构造函数的第一行
    参数列表应匹配相应构造函数的参数列表

    super(参数列表) 在子类构造函数中调用父类构造函数,参数列表可为空(调用空参)
    子类中的构造方法会自动调用父类的无参构造方法(若没有显示调用父类构造方法)
    第一行
    super. 调用父类的成员函数与成员变量

    super(), this() 不能同时出现

    子类内存空间分为父类空间和子类空间,同C++
    子类的所有构造方法都要直接、间接的调用父类构造函数

    ########### day13 final static 匿名对象 内部类 包 ########
    # final
    修饰类, 不可被继承
    修饰方法, 不能被重写

    修饰变量, 一次赋值,不能被改变, 同C++ const

    修饰引用数据类型, 变量保存的内存地址不能改变 同C++ const

    修饰成员变量
    成员变量的赋值,在创建对象前赋值
    1、final int age= 1; 直接赋值(recommend)
    2、构造方法赋值
    final int age;
    public People(int age)
    {
    this.age = age;
    }

    # static 同C++
    修饰类成员, 成为对象共享数据,不属于某个对象,类共有,同C++
    可以用类名调用, 存在于静态区,有默认值

    public static final String SCHOOL_NAME = "itcast";
    常量大写,单词之间加下划线
    匿名对象:做参数,做返回值

    内部类可以使用外部类成员
    外部类要使用内部类的成员,必须建立内部类对象

    调用规则
    外部类名.内部类名 变量 = new 外部类().new 内部类();
    变量.内部类成员

    同名变量的调用
    调用外部类成员 outer.this.i;
    调用内部类成员 this.i;
    调用局部变量 i;

    局部内部类
    在方法里面建立内部类对象,对象进行调用

    # 匿名内部类

    定义实现类,重写方法,创建实现类对象一步完成

    new 接口/父类(){
    重写抽象方法
    }.方法;

    多态的方式
    接口/父类 变量 = new 接口/父类(){
    重写抽象方法
    };
    变量.方法1;
    变量.方法2;

    class XXX implements Smoking{                                      new Smoking(){
      public void smoking()    等价于            public void smoking() 
      { }                           {   }
    }                           }.smoking();

    XXX x = new XXX();
    x.smoking();

    包相当于文件夹   包名网址反写

    代码块执行顺序
    static 代码块,只执行一次
    构造代码块
    构造方法

    WE ARE ALL IN THE GUTTER, BUT SOME OF US ARE LOOKING AT THE STARS
  • 相关阅读:
    shell 的多进程
    shell 按行读取文件的内容
    2>&1的意思
    >/dev/null 2>&1
    js 变量作用域
    Premiere Pro 中的键盘快捷键
    premiere pro 2019 mac 破解
    js 空语句
    js 数组原型
    js 奇偶判断
  • 原文地址:https://www.cnblogs.com/YKang/p/7260033.html
Copyright © 2020-2023  润新知