关于内部类你所需要知道的一切
来源:互联网 发布:葛根饮料销售网络方案 编辑:程序博客网 时间:2024/06/08 02:46
内部类不管是在java,还是在安卓,都是很重要的一个知识点,那么内部类到底有哪些东西呢?有哪些我们需要理解和必须掌握的了?通过学习和个人总结了以下10条仅供初学的参考:
public class Outside{//外部类
private int x=3;
public (static) class Intside{//是内部类
int x=4;
void methods(){
int x=6
System.out.println("请输入"+x+"的值");
1:答案肯是6
2:改成this.x,指的是内部类的x,值是4
3:改成Outside.this.x,值是3
}
}
//外部类方法
void outsideMethod(){
//外部类访问内部类,需要实例化内部类对象
Intside b =new Intside();
}
}
public class Outside2{//其他的外部类
问题:Outside2怎么访问Intside内部类的成员
Outside.Intside a=new Outside.new Intside()
}
总结,1:就是内部类可以直接访问外部类的成员,包括私有
2:外部类要访问内部类,必须建立内部类的对象
3:内部类Intside是所属Outside外部类的成员(也可以说内部类在外部类的成员位置
上),也可以private,但是如果外 部类Outside私有,其他的外部类Outside2是不
能访问他的 的外部类Outside2
4:为什么内部类可以直接访问外部类,是因为内部类中持有一个外部类的引用,引用
是外部类名.this
5:当内部类在外部类的成员位置上,内部类具备static的特性,当内部类被static修饰后,只能访问外部类的 静态成员了。
那么其他的外部类Outside2里面怎么访问static修饰的内部类的非静态成员呢?可以通过以下方法
new Outside.Inoutside().methods()
其他的外部类Outside2里面怎么访问static修饰的内部类的静态成员呢?
Outside.Inoutside().methods(),直接类名访问
6:注意注意:当内部类中有静态成员,其内部类必须是静态的,否则不能访问
7:当所属外部类的中的静态方法访问内部类的时候,内部类必须是静态的
8:为什么要内部类,类是用来干嘛的,描述现实中事物的,当描述事物时,事物的内部还有事物,用内部类 描述,内部事物需要直接访问外部事物(方法或者属性) 的时候,可以用内部类,这个时候内部类最好封装 private,内部事物外界不用暴露出来
9:内部类可以写在外部类的任何地方,成员位置包括局部,那么我们调用methed()方法的时候,function()会 被调用吗?是不会的,要有内部类对象才可以
class Outside(){
int x=4;
void methed(){
class(){局部内部类,访问规则没有变,局部内部类是不能定义静态成员的
void function(){
}
}
}
}
10:匿名内部类的写法
假设有抽象父类或者接口AbsDemo,但是没有子类,可以这样创建匿名内部类子类对象,以下代码就是,匿名 内部类的子类的对象
new AbsDemo(){
void chongxie(){
System.out.print("我这一大块就是匿名内部类的子类");
}
}
最后感谢访问我博客的朋友,后面的内容会不断更新和丰富的的,初始写博客,可能写得不好,只是希望与和我一样在学习的朋友共勉:可以加我QQ1830502395,进行学习交流
- 关于内部类你所需要知道的一切
- CSS-关于定位,你所需要知道的一切
- 关于Linux进程你所需要知道的一切
- 关于 Java 9 你所需要知道的一切
- 关于 Java 9 你所需要知道的一切
- 关于 Java 9 你所需要知道的一切
- 关于Java 9你所需要知道的一切
- 关于AndroidManifest所需要知道的一切
- 关于Weex你需要知道的一切
- Android UI 关于Android计量单位dip dp sp px 你所需要知道的一切
- 关于Java垃圾回收机制,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- 关于 Android 进程保活,你所需要知道的一切
- POJ 2377Bad Cowtractors(kruskal最大生成树)
- UCOS中断函数的编写
- enumTips
- n个点m个操作后各点的位置 矩阵快速幂 NYOJ 298 点的变换
- CentOS7上安装PostgreSQL
- 关于内部类你所需要知道的一切
- 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配
- java 获取上月、一个月最后一天、周一、周日、本月日期 【转】
- 贪心入门
- 【python学习笔记】1.python环境搭建
- Vim批量注释
- 史上最经典的Linux内核学习方法论
- android动画实现单摆效果
- hdu 5025 Saving Tang Monk(BFS+状态压缩)