Java 形式参数、包、修饰符、内部类

1:形式参数和返回值的问题

(1)形式参数:
  1. 类名:需要该类的对象。
  2. 抽象类名:需要该类的子类对象。
  3. 接口名:需要该接口的实现类对象
(2)返回值类型:
  1. 类名:返回的是该类的对象。
  2. 抽象类名:返回的是该类的子类对象。
  3. 接口名:返回的是该接口的实现类的对象。
(3)链式编程
  • 对象.方法1().方法2()…方法n();
    • 这种用法:其实在方法1()调用完毕后,应该是一个对象;
      • 方法2()调用完毕后,应该返回一个对象。
        • 方法n()调用完毕后,可能是对象,也可以不是对象。

2:包

1. 其实就是文件夹
2.作用:

  • A: 区分同名的类
  • B:对类进行分类管理
    • a:按照功能分
    • b: 按照模块分

3. 包的定义

  • package 包名;
    • 多级包用.分开。

4. 注意事项:

  • package语句必须在文件中的第一条有效语句。
    • . 在一个java文件中,只能有一个package。
    • . 如果没有package,默认就是无包名。

5. 带包的编译和运行

  • A:手动式
  • B:自动式(推荐)
    • javac -d . 类名.java

3:导包 (掌握)

(1)我们多次使用一个带包的类,非常的麻烦,Java提供了一个关键字import.
(2)格式:

  • import 包名…类名;
  • 另一种:包名…*;(不推荐)

(3)package,import,class的顺序

  • package > import > class

4:权限修饰符(掌握)

  • 权限修饰符

                      本类	同一个包下	不同包下的子类	不同包下的无关类
     private		       Y			
     默认	           Y			Y
     protected	       Y			Y			Y
     public		       Y			Y			Y				Y
    
  • 这四权限修饰符在任意时刻只能出现一种。
    . public class Demo {}

5:常见的修饰符(理解)

(1)分类:
  1. 权限修饰符:private,默认,protected,public
  2. 状态修饰符:static,final
  3. 抽象修饰符:abstract
(2)常见的类及其组成的修饰
  1. 类:

    1. 默认,public,final,abstract
    2. 常用的:public
  2. 成员变量:

    1. private,默认,protected,public,static,final
    2. 常用的:private
  3. 构造方法:

    1. private,默认,protected,public
    2. 常用的:public
  4. 成员方法:

    1. private,默认,protected,public,static,final,abstract
    2. 常用的:public
(3)另外比较常见的组合:
  • public static final int X = 10;
  • public static void show() {};
  • public final void show() {};
  • public abstract void show() {};

6:内部类(理解)

(1)把类定义在一另一个类的内部,该类就被称为内部类。

  • 举例:把类B定义在类A中,类B就被称为内部类。

(2)内部类的访问规则

  • A:可以直接访问外部类的成员,包括私有
  • B:外部类要想访问内部类成员,必须创建对象

(3)内部类的分类

  • A:成员内部类
  • B:局部肉部类

(4)成员内部类

  • A:private 为了数据的安全性

  • B:static 为了访问的方便性

  • 成员内部类不是静态的;

    • 外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
  • 成员内部类是静态的:

    • 外部类名.内部类名 对象名 = new 外部类名.内部类名();

(5)局部内部类

  • A:局部内部类访问局部变量必须加final修饰。
  • B:为什么呢?
    • 因为局部变量使用完毕就消失,而堆内存的数据并不会立即消失。
    • 所以,堆内存还是用该变量,而该变量已经没有了。
    • 为了让该值还存在,就加final修饰。
    • 通过反编译工具可以看到,加入final后,堆内存直接存储的是值,而不是变量名。

(6)匿名内部类(掌握)

  • A:是局部内部类的简化形式
  • B:前提:
    • 存在一个类或者接口
  • C:格式:
    new 类名或者接口名() {
    重写方法;
    }
  • D:本质:
    • 其实是继承该类或者实现接口的子类匿名对象

(7)匿名内部类在开发中的使用

  • 我们在开发的时候,会看到抽象类,或者接口作为参数。
  • 这个时候,我们知道实际需要的是一个子类对象。
  • 如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值