A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张研老师 于 2015-12-5 10:35 编辑

包: 为什么要有包
将字节码.class 进行分类存放

包其实就是文件夹

包的定义和注意事项

定义格式: package 包名;

         多级包用. 分开即可

定义包用 分开即可

注意事项:

        package 必须是程序的第一条可执行代码.
        package 在一个java文件中只能有一个
        如果没有package 默认表示无包名

带包的类如何编译和运行.

编译 javac -d . 类名.java

运行,java 包名.类名

    不同包下类之间的访问.
第一种方式
通过 包名 类名的形式调用.
  第二种方式:
  import java.util.Scanner;

     可以通过 导包实现.

    import  包名.类名;
   注意  用谁就导入谁 不要写.*的形式

面试题

  package import class 之间有没有顺序关系
   有 从上到下 package import class
  注意:  

   一个java文件中  package 语句值能有一个 而import class 可以多个(class 一般在java文件中  只会写一个)

权限修饰符:

    private 默认  protected   public

private Y
默认    Y     Y
protected  Y   Y               Y        
public    Y     Y            Y           Y


private 只能在本类中使用
记忆.  给自己使用
默认, 可以在本类或者同包下的类使用
给同包下的类使用
protected 本类  同包下的类  不同包下的子类
给 子类使用.
public 公共的. 给大家使用

        类:
       默认修饰符 public
       状态修饰符:final
       抽象修饰符:abstract

用的最多的就是:public

总结 以后写代码. 成员变量全部用 private  其他(类 构造 方法) 全用public
    有种特殊情况 工具类的构造方法用private 修饰

  注意:
    被public 修饰的类 叫公共类 也叫定级类 一个java文件中 公共类 智能有一个 并且公共类名必须和java文件名一致


  内部类:

        概述:  类里边还有一个类.  里边那个类就是内部类.
访问特点: 内部累可以直接访问外部类成员. 包括私有
          外部类要访问内部类的成员 必须创建对象.
          外部类名 内部类名 对象名 = 外部类对象  内部类对象;

  内部类分类
    : 成员内部类: 定义在外部类成员位置的类就叫成员内部类
                        简单记忆:记忆在成员位置
      局部内部类 : 定义在局部位置.

      成员内部类:
                加私有: 可以在外部中提供一个公共的访问.

加静态  方便调用        外部类名.内部类名 对象名 = 外部类对象.内部类对象
                  

局部内部类  
         定义在局部位置

答: 也能为局部变量生命周期是一爱于方法, 方法调用完毕后. 局部变量就施放了. 如果此时局部内部类对
象还唉使用局部变量 就会报错 . 所以该局部变量必须加final 修饰. 就是为了延长局部变量生命周期 但是jdk
1.8取消了这个事 所以我觉得这是一个bug




     面试题:
在内部类的成员方法中  如果使用局部变量. 内部类的成员变量 以及  外部类的成员变量

                局部变量: 直接用.
                内部类的成员变量: 通过this.的方式使用
                外部类的成员变量: 通过外部类名.this.的形式调用.
   
       内部类之所以能使用外部类的成员  是因为内部类能获取到外部类的引用  外部类名.this.

匿名内部类:

概述 没有名字的局部内部类

前提: 存在一个类或者借口.  哲理的类可以是具体类也可以是抽象类

格式:new 类名或者接口名() {
        重写类或者接口中的所有抽象方法
};

本质 :  是一个继承了该类或者实现了该借口的子类匿名对象.


理解: 其实匿名内部类就是实现了接口(或者继承了类的匿名的子类对象)

什么时候使用匿名内部类

1, 匿名内部类值针对重写一个抽象方法
2, 当我们看到一个方法的形参的数据类型是一个借口 或者抽象类的时候 就可以考虑使用匿名内部类
   (在实际开发中  用到的特别多)


评分

参与人数 1黑马币 +3 收起 理由
张研老师 + 3 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马