首页 > 编程语言 > 详细

Java学习笔记(2)

时间:2020-03-17 21:57:16      阅读:55      评论:0      收藏:0      [点我收藏+]

Java类的高级特性:

{Java管理文件机制:类包。

同一个包中的类互相访问时,可以不指定包名。

同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可以分别放在不同盘中,只要将CLASSPATH分别指向两个位置即可。

Java包的命名规则是全部小写字母。}

 

  1.内部类

    如果在外部类和非静态方法之外实例化内部类对象,需要使用外部类.内部类的形式指定该对象的类型!

例:

1 public static void main(String args[]){
2         
3         OutClass out = new OutClass();
4         OutClass.inClass in0 = new out.doIt();
5         OutClass.inClass in1 = new out.inClass();
6 }        

    内部类对象会依赖于外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象!

    内部类不能被声明为private或protected访问类型。

 

    使用this关键字获取内部类与外部类的引用:

public class Test{
    private int x;
    private class Inner{
        private int x=9;
        public void doit(int x) {
            x++;                //形参x
            this.x++;            //内部变量x
            Test.this.x++;        //外部变量x
        }
    }
}

 

内部类对象与外部类对象在内存中的分布情况如图??

技术分享图片

 

 

匿名内部类:

interface intface0{
    
}

class OutClass{
    public intface0 doit(){            //定义doit方法
        return new intface0(){        //声明匿名内部类
            private int i=0;
            public int input() {
                return i;
            }
        };    
    }
}

 

实质上这种内部类的作用就是创建一个实现鱼intface0接口的匿名类的对象。

匿名类格式:

return new class_name(){
            ......//内部类体
        };    

 

Java学习笔记(2)

原文:https://www.cnblogs.com/husai/p/12512732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!