您的位置:首页 > 其它

包,修饰符,内部类,匿名内部类

2016-07-20 16:15 337 查看
1.形式参数和返回值的问题

 (1)形式参数

  类名:该类的对象

  接口类名:该接口的实现类对象

  抽象类名:需要该类的子类对象

 (2)返回值类型

  类名:返回该类的对象

  接口类名:返回该接口的实现类对象

  抽象类名:返回的是该类的子类对象

 (3)链式编程

  对象.方法1().方法2().方法3();

  这种方法,其实在方法1,2调用完后返回一个对象。

2.包

 (1)文件夹

 (2)作用:

  A:区分同名的类

  B:对类进行分类管理

   a:按照功能分

   b:按照模块分

 (3)包的定义

  package 包名;多级用 . 分隔开

 (4)注意事项

  A:package语句必须在文件的第一条有效语句

  B:在一个java文件中,只能有一个package

  C:如果没有包名,默认就是无包名

 (5)带包的编译和运行

  A:手动式

  B:自动式

   javac -d . HellodWord.java

3.导包

 (1)格式:import 包名...类名;

 (2)package,import,class顺序

  package 》 import 》 class

4.权限修饰符

    本类  


同一个包下 不同包下的子类 不同包下的无关类

 private  Y

 默认      Y   Y    

 protected Y   Y    Y

 public  Y   Y    Y    Y

 注意:这四种权限修饰符在任一时刻只能出现一种

5.常见的权限修饰符

 (1)分类

  权限修饰符:private,默认,protected,public

  状态修饰符:static,final

  抽象修饰符:abstract

 (2)public static final int x = 10;

6.内部类

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

 (2)内部类的访问规则:

  A:可以直接访问外部类的成员。包括私有

  B:外部类想要访问内部类,必须创建内部类对象

 (3)内部类分类

  A:成员内部类

  B:局部方法类

 (4)成员内部类

  成员内部类不是静态的:

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

  成员内部类是静态的:

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

 (5)局部内部类

  A:局部内部类访问局部变量,必须用final修饰

   因为局部变量使用完就消失了,而堆内存的数据不会立即消失

   所以,堆内存还用该变量,而改变量已经没有了,为了让该值

   还存在,就用final 修饰。

 (6)匿名内部类

  A:是局部内部类的简化形式

  B:前提:存在一个类或者接口

  C:格式:

   new 类名或者接口名(){

    重写方法;

   }

  D:本质:

   其实是继承该类或者实现接口的子类匿名对象

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

  我们在开发时,会看到抽象类或者接口作为参数,但是,我们知道

  诗句需要的是一个子类对象,如果该方法仅仅调用一次,我们就可

  以使用匿名内部类的格式简化。

 (8)匿名内部类的一个面试题(补全代码)

  interface Inter{

   void show();

  }

  class Outer{

  (补全代码)

  

  public static Inter mathod(){

    

    return new Inter(){

     public void show()

     {

      System.out.println("好好学习,天天向上");

     }

    };

   }

  }

  

  class OutDemo{

   public static void main(String[] args)

   {

    Outer.method().show();

   }

  }

 

 

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息