10.内部类
来源:互联网 发布:彩票计划软件 源代码 编辑:程序博客网 时间:2024/06/06 02:28
1.关于静态内部类
(1).静态内部类可同等看作静态变量
内部类的重要作用:可以访问外部类中私有数据
2.关于成员内部类:
1.成员内部类可以等同看作成员变量
2.成员内部类不能由静态声明
3.成员内部类能访问外部所有数据
3. 关于成员内部类:
1.局部内部类可以等同看作局部变量
(1).静态内部类可同等看作静态变量
内部类的重要作用:可以访问外部类中私有数据
(2).静态内部类可以直接访问外部类的静态数据,无法直接访问成员
class outter{//成员变量private int c1 = 1; //静态变量private static int c2 = 2;//成员方法private void m1(){System.out.println("m1 method");}//静态方法private static void m2(){System.out.println("m2 method");}static class inner{ //定义静态方法m3()public static void m3(){System.out.println(c2);m2();} //定义成员方法m4() public void m4(){ System.out.println(c2); m2(); } }}//编译后生成outter$inner.class 和 outter.class 和test.class三个.class文件(前者的$代表内部类)public class test{public static void main(String[] args){outter.inner.m3();//静态方法直接通过类名调用outter.inner in = new outter.inner();in.m4();//成员方法通过对象调用}}
2.关于成员内部类:
1.成员内部类可以等同看作成员变量
2.成员内部类不能由静态声明
3.成员内部类能访问外部所有数据
class outter{//成员变量private int c1 = 1; //静态变量private static int c2 = 2;//成员方法private void m1(){System.out.println("m1 method");}//静态方法private static void m2(){System.out.println("m2 method");}class inner{ //定义静态方法m3()//public static void m3(){}报错,因为成员内部类不能有静态声明 //定义成员方法m4() public void m4(){ System.out.println(c1); m1(); System.out.println(c2); m2(); } }}//编译后生成outter$inner.class 和 outter.class 和test.class三个.class文件(前者的$代表内部类)public class test{public static void main(String[] args){outter out = new outter();outter.inner in = out.new inner();in.m4();//成员方法通过对象调用/*刚开始调用时还是写成outter.inner in = new outter.inner(); 但是会报错:需要包含outter.inner的封闭实例 因为上面的静态类可以直接通过外部类名.的方式调用 而成员内部类需要先创建外部类对象,再通过对象.的方式创建内部类对象*/}}
3. 关于成员内部类:
1.局部内部类可以等同看作局部变量
2.局部内部类在访问局部变量的时候,必须用final修饰
class outter{public void m1(){final int i = 10;class inner{public void m2(){System.out.println(i);}}}}4.关于匿名内部类
匿名内部类:指的是类没有名字
public class test{//静态方法public static void t(CustomerService cs){ cs.logout();}//入口public static void main(String[] args){//使用匿名内部类方式执行t方法//整个这个"new CustomerService(){}"就是个匿名内部类t(new CustomerService(){ public void logout(){ System.out.println("exit"); }});//匿名内部类的优点:少定义一个类//缺点:无法重复使用}}//接口interface CustomerService{void logout();}
阅读全文
0 0
- 10.内部类
- 【JAVA学习】10.内部类
- Java学习-10.内部类
- 10. 面向对象 -- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- iOS证书说明和发布内购流程整理及 证书申请
- Jmeter测试登录接口时密码RSA加密如何处理
- 设计模式--适配器模式
- leet code. 15. 3Sum (暴力???)
- snmp在Centos 7中安装
- 10.内部类
- 关于锁的理解
- git tag教程
- 【HUSTOJ】1092: 马鞍数
- Java多线程学习
- LightOJ
- Gym
- C++ 直接选择排序的实现实例代码
- 指向多维数组的指针