黑马程序员_07. 包和访问权限及内部类和匿名内部类

来源:互联网 发布:淘宝卖弓犯法吗 编辑:程序博客网 时间:2024/05/22 06:26

七、黑马程序员_包和访问权限及内部类和匿名内部类

-------- android培训、java培训、期待与您交流!--------

A.包和访问权限  B.内部类  C.匿名内部类
A.包和访问权限
a.包
其实包就是将字节码(.class)进行分类存放,用package关键字定义。
1.包的定义格式:package 包名,多级包用.分开即可 比如: package com.baidu.mail;
2.定义包的注意事项:
(1).package语句必须是程序的第一条可执行的代码;
(2).package语句在一个java文件中只能有一个;
(3).如果没有package,默认表示无包名.
3.带包的类编译和运行
(1).javac编译的时候带上-d即可,如:javac -d . HelloWorld.java;
(2).通过java命令执行,类的全名为包名加上类名。如:java 包名.HellWord。
4.导包 
(1).导包格式:import 包名+具体的类。如:import java.io.OutputStream;
(2).其实导包导的是包中的类,可以导入多个;
(3).导包时可以使用能配符“*”,如:import java.io.*;但是不建议,最好导入具体的类。
b.访问权限

权限修饰符:private,default(默认的),protected,public


  B:内部类
  (1).概述:定义在内中的类叫做内部类,当一个事物当中还有事物时,就用内部类来描述,这样定义比较方便使用内部类的成员,不需要建立外部类的对像。如:
  class Outer{
  class Inter{
  Sysem.out.println("我是内部类");
  }
  }


  还有一种定义在局部的内部类,定义在方法中,这种方式一般很少用。格式为:
  class Outer{
  public void method(){
  class Inner{
  Sysem.out.println("我是局部内部类");
  }
  }
  }
  但是这种方式的定义比较有使用局限性。一般情况下都是定义在成员位置上。
  (2).内部类访问特点
  a:内部类可以直接访问外部类的成员(不需要建立外部内的对像),包括私有;
  b:外部其它类中要访问内部类的成员,必须创建对象,访问方式是:
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
c.成员内部类被静态修饰后的访问方式是:
外部类名.内部类名 对象名 = 外部类名.内部类对象;
注意,如果内部内中的成员方法被静态修饰,那么这个类也必须要用static修饰。
(3).匿名内部类
a.匿名内部类就是内部类的简化写法,这个类可以是具体类也可以是抽象类,还可以是接口。
它必须继承一个类或实现一个接口。
b.格式:
new 类名或者接口名(){
重写方法;
}


c.建议当一个类或接口中只有一个或两个方法时才使用匿名内部类,如果方法太多这样写就没意义了。
1 0