java基础复习(九)

java基础第九天

为什么要有包,将字节码文件进行分类存放

包其实就是文件夹

包的概述

1.按照功能去划分

2.按照模块分

定义包的格式:

package 包名;

多级包用.分开即可

定义包的注意事项

package 语句必须是程序的第一条可执行代码

package语句在一个java文件中只能有一个

如果没有package,默认表示无包名。

包名+类名

java com.heima.Demo1_Package 运行

带包的类 运行的时候也要带上包文件的名字 如上

javac -d . 源文件.java 编译生成目录 字节码文件编译到.当前文件夹下。

不同包下类之间的访问:
1.import 导入包 或者 带上包名字使用

2.权限为 public

封装:想给你看哪些,不想给你看哪些。封装是相对的。

导入的时候 import java.util. //代表通配符,他会到该包下挨个匹配,匹配上就导入。

在开发中都是用导入具体的类。

package import class 顺序关系

四种权限修饰符

private 默认的 protected public

私有仅仅是封装的一种体现形式

protected本类中可以访问,不同包下的子类可以访问。

不同包下的无关类,不能访问

面向对象 类及其组成所使用的常见修饰符(掌握)

1.修饰符

2.类

3.成员变量

4.构造方法

5.成员方法

除此以外的组合规则:

​ 成员变量

​ 成员方法

内部类

在类中定义类

内部类访问特点:

1内部类可以直接访问外部类的成员,包括私有。

2外部类要访问内部类的成员,必须创建对象。

外部类名.内部类名 对象名 = 外部类对象.内部类对象;;

Outer.Inner oi = new Outer().new Inner();

成员内部类私有使用

静态成员内部类

外部类名.内部类名 对象名 = 外部类名.内部类对象;

Outer.Inner oi =new Outer.Inner();

还有一种就是在外部类中访问内部类,然后提供一个public的方法。

成员内部类的面试题

Outer.this的使用

局部内部类

方法中定义类--开发中用的很少。

局部变量被弹栈走了 用final定义的常量在常量池

到jdk1.8不加也可以。

匿名内部类,没有名字的内部类,写在方法里。

必须与外面某个类或者某个接口形成关系

new Inter(){

重写里面的抽象方法;

};

相当于一个没有名字的子类

new Inner() {
    public void print(){
        System.out.println("print");
    }
}.print();

匿名内部类只针对重写一个方法时候使用,不然太麻烦了。

匿名内部类是不能向下转型的,因为没有子类类名。

匿名内部类在开发中的应用:

匿名内部类面试题:

按照要求补齐代码

链式编程,调用方法之后还能继续调用方法。

证明调用方法之后返回是一个对象。

五天之后翻回来看

封装

继承

多态

本文链接:

https://heyzen.club/index.php/J/227.html
1 + 4 =
快来做第一个评论的人吧~