• 大龄屌丝自学笔记Java零基础到菜鸟020


    包,权限修饰符,内部类,练习题

    1、包

    包:package,对类进行分类管理的文件夹。

    包的格式:package 包名,多级包用 “.” 隔开,如:package asia.persia 。

    带包文件的编译:手动创建相应的文件夹;或者编译命令加 “ -d” ,如:javac -d liverpool.java 。

    访问不同包中的类文件:类文件前加上包的全路径,如:asia.persia.Demo de=new asia.persia.Demo(); 。

               使用 “import” 关键字导入包。

    import:导入包,import 包名,多级包用 “.” 隔开,如:import asia.persia ,之后就可以直接 Demo de=new Demo(); 。 

    注意事项:package必须是程序的第一条执行语句,没有package表示没有包名。

         一个文件中,package只能有一个、import可以有多个、class可以有多个(建议有一个)。

    2、权限修饰符。

    3、内部类

    内部类的概念:定义在类中的类,如:class C1{ class C2{} } 。

    内部类的特点:内部类可以直接访问外部类的成员,外部类需要创建对象访问内部类的成员。

    内部类的分类:成员内部类,局部内部类。

     1 class A{
     2     class B{
     3         //成员内部类
     4     }
     5 
     6     public void cod5(){
     7         class C{
     8             //局部内部类
     9         }
    10 
    11         C c=new C();  //访问局部内部类
    12         //c.局部内部类的功能
    13     }
    14 
    15     public void cod2(){
    16         B b=new B();  //访问成员内部类
    17     }
    18 }
    19 
    20 class ABC{
    21     public void asdf(){
    22         A.B ab=new A().new B();  //访问成员内部类
    23         ab.cod5();  //访问局部内部类
    24     }
    25 }

    成员内部类与this。

     1 class Fin{
     2     int num=1;
     3 
     4     class En{
     5         int num=2;
     6 
     7         public void show(){
     8             int num=3;
     9 
    10             System.out.println(num);
    11             System.out.println(this.num);
    12             System.out.println(Fin.this.num);
    13         }
    14     }
    15 }
    16 
    17 //依次输出:3,2,1

    局部内部类访问局部变量,局部变量必须用final修饰,否则生命周期报错。

     1 class Fin{
     2     public void method{
     3         final int num=1;
     4 
     5         class En{
     6             public void show(){
     7                 System.out.println(num);
     8             }
     9         }
    10     }
    11 }

    注意事项:静态内部类只能访问外部类的静态成员;静态内部类可以定义静态、非静态方法。

    4、练习题

    答案

     1 interface Inter{
     2     void show();
     3 }
     4 
     5 class Outer{
     6     //补齐代码
     7     public static Inter method(){
     8         return new Inter(){
     9             public void show(){
    10                 System.out.println("HelloWord");
    11             }
    12         }
    13     }
    14 }
    15 
    16 class OuterDemo{
    17     public static void main(String[] args){
    18         Outer.method().show();
    19     }
    20 }
    21 
    22 //输出:HelloWord
  • 相关阅读:
    python --(链表)
    Cocos Creator_继承组件单例
    JDK丨WIN10配置JDK1.8 (解决javac不是内部或外部命令,也不是可运行的程序或批处理文件)
    debug apk logCat
    JavaScript 当前URL取参返回字典
    Javascript扩展String.prototype实现格式金额、格式时间、字符串连接、计算长度、是否包含、日期计算等功能
    cocos2d JS 源生js实现each方法
    Cocos Creator 动态设置Canvas的宽度与高度,更改适配
    JavaScript 判断是PC端还是移动端
    cocos creator使用anysdk接入admob广告教程
  • 原文地址:https://www.cnblogs.com/liverpool/p/4823206.html
Copyright © 2020-2023  润新知