Javase学习Day10——面向对象----修饰符,内部类,参数传递

一、学习笔记

static关键字
    概述
        static 静态修饰符
            可以修饰类的成员 被static修饰的成员 属于类 而不单属于某个对象
            被所有对象所共享
    static静态访问
        static 静态的访问
             对象名.属性名;              不推荐
             对象名.方法名(实际参数);     不推荐

             类名.属性名;
             类名.方法名(实际参数);
    static的注意事项
         static的注意事项
           静态内容随着类的加载而加载 优先于对象出现
           所以静态只能直接访问静态 不能直接访问非静态
           静态中不能使用this/super
    局部代码块
成员代码块
静态代码块
        局部代码块
         限制变量的作用域范围
        成员代码块
          定义在类中方法外的代码块
           创建对象时执行  也称为构造代码块
         静态代码块位于类中方法外
          类加载时执行 类只加载一次 静态代码块只执行一次
                         1.创建对象
                         2.创建子类对象
                         3.访问静态成员
                         4.访问子类静态成员

             类的加载
          加载
          连接
          初始化
             静态代码块执行
                 静态代码块> 构造代码块>构造方法
     定义静态常量 
        
          静态内容优先于对象存在
          当类加载时 静态方法就已经加载了
          静态的a就已经有值了 所以可以访问
          但是 name和age还没有进入到堆内存中
          还没值 不能使用已存在的内容访问还未出现的内容;如果想访问name和age属性 先创建对象
          静态不能直接访问非静态
             静态常量
          public static final 数据类型 变量名 = 值
     静态导入(了解)
         静态导入
import static 包名(com.doit.demo).类名.*;
    静态的内存解释
        

 权限修饰符
    不同权限的访问能力
        在同一个包下的无关类中  private不能访问
 在同一个包下的子类中 private不能访问
 不同包下的无关类中 只有public可以访问
     其他不能访问
不同包下的子类中 public protected可以访问
     默认和私有不能访问
            
        public 公共权限   可以修饰 类  方法 成员变量  任意地方都可以访问  一个文件中只能有一个public修饰的类
            public修饰的类 类名必须与文件名相同
     protected  受包含的权限  可以修饰 内部类  方法 成员变量  当前包与其他包的子类可以访问
     默认   包权限   可以修饰类  方法 成员变量  当前包下可以访问
     private 私有权限  可以修饰 内部类 方法 成员变量  当前类可以访问

     final 最终修饰符 可以修饰 类  方法 成员变量 局部变量
           final修饰类不能继承 修饰的方法不能被重写 修饰的变量是常量

     static 静态修饰符  可以修饰  内部类 方法 成员变量

     abstract 抽象修饰符  可以修饰 类  方法

     final和abstract能不能一起使用?
             final和abstract修饰类 不能一起使用 final修饰的类不能继承 而abstract修饰的类 要求必须继承
             final和abstract修饰符方法 也不能一起使用 final修饰不能重写 而abstract修饰的方法 要求子类必须重写
     static和abstract能不能一起使用?
            如果修饰内部类 可以一起使用
            但是如果修饰方法 不能一起使用 假设可以的话 就会出现类名直接运行一个抽象方法 调用抽象方法没有意义
     final和static能不能一起使用?
           可以

     private和abstract能不能一起使用?
             如果修饰内部类 可以一起使用
             如果修饰方法 不能一起使用 private修饰的方法 子类看不到  而abstract要求子类重写 冲突.


     native 本地修饰符 可以修饰方法 如果被native修饰的方法 说明这个方法不是用java语言编写
            用c语言编译 这个方法 与操作系统进行交互  我们看不到源码.

内部类
      内部类
         成员内部类
         局部内部类
    成员内部类
定义在类中方法外的类
        class 外部类 {
    class 内部类{
    }
}
            访问特点
                内部类可以直接访问外部类的成员,包括私有成员。
                外部类要访问内部类的成员,必须要建立内部类的对象。
创建内部类对象格式:
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
                内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号
    匿名内部类
         匿名内部类
          属于局部内部类一种
          1.定义了一个类的子类
          2.创建了这个子类的对象
          作用:临时创建一个类子类对象的快捷方式
          格式
              new 父类/接口(){
                    重写方法
              };

引用类型的传递
    引用类型
        当引用类型是方法的形式参数时 如何调用方法
            调用方法时 传入当前类型的对象
            调用方法时 传入当前类型的子类对象
            使用匿名内部类
        当引用类型是方法的返回值类型时  如何返回数据
            返回当前类型对象
            返回当前类型的子类对象
            匿名内部类 子类对象
    接口
        接口作为方法的形式参数时  该方法如何调用
            方法的参数是接口是 调用方法时只能传入其实现类对象
            也可以使用匿名内部类
        接口作为方法的返回值类型时  该方法返回什么数据
            返回值类型是接口 只能返回其实现类对象

二、今日的学习心情

状态比较好,收获满满的一天,非常开心

三、明日规划

练习代码速度,上课注意听预习困惑的问题,课前提前准备,加油。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值