JAVA中的内部类
来源:互联网 发布:注射死刑 知乎 编辑:程序博客网 时间:2024/06/05 10:59
内部类的顾名思义就是定义在一个类里面的类,如下两个Test类都是内部类
Class Person{
private String name;
private int age;
}
Class Test1{
private class Person;
……
}
Class Test2{
public getName(){
private class Person;
……
}
}
内部类可以定义在类中的任何地方,可以作为属性,也可以定义在方法中。
之所以使用内部类,是因为内部类可以方便的访问外部类的私有成员。如下用Inner类中的print()函数打印Outer类中的私有属性的两种实现方式:
第一种方式,不使用内部类:
Class Outer{
private String name="Hello World";
public fun(){
new Inner(this).print();
}
public getName(){
return this.name;
}
}
Class Inner{
private Outer out;
public Inner(Outer out){
this.out=out;
}
public print(){
System.out.println("name值是"+this.out.getName());
}
}
public class Test{
public static void main(String arg[]){
new Outer().fun();
}
}
第二种方式,使用内部类:
Class Outer{
private String name="Hello World";
Class Inner{
public void print(){
System.out.println("name值是"+this.name);
}
}
public void fun(){
new Inner().print();
}
}
public Class Test{
public static void main(String args[]){
new Outer().fun();
}
}
由此可见,内部类虽然结构混乱,但是,能方便的访问外部类的私有成员,所以有其重要的用处,在各种框架中应用尤其普遍。
内部类的实例化方式如下:
外部类.内部类 内部类对象 = 外部类实例.new 内部类实例();
例如:Outer out = new Outer();Outer.Inner in =out.new Inner();
其中比较特殊的是用static声明的内部类,可以通过外部类.内部类来访问。
另外,在方法中定义的内部类,可以直接访问外部类中的各个成员,但是如果要访问方法中的参数,则在参数前要加上final关键字声明。
- java中的内部类
- JAVA中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- JAVA 中的内部类
- java中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- Java 中的内部类
- java 中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- Java中的内部类
- java中的内部类
- 安装jdk1.8
- 正则替换特殊字符
- Androidx学习笔记(33)---新闻客户端之布局
- Theano的一个关于signal,signal/conv,signal/downsample的错误
- 【算法-字符串】【WERTYU】
- JAVA中的内部类
- iptables(一)
- 【NYOJ】[75]日期计算
- 黑马程序员——Java正则表达式
- struts2全局结果
- struts2-通过action从后台将json数据传到前台的方法(二)
- Androidx学习笔记(34)---新闻客户端之获取新闻xml文件并解析
- 【数据结构】二叉树的前中后序遍历递归和非递归实现
- spark-submit到yarn上遇到的各种坑