调用内部类对象

来源:互联网 发布:网络出租屋转让 编辑:程序博客网 时间:2024/06/15 18:05

内部类是在java中的一种使用方法,首先要先说一说什么是“内部类”。

内部类是在一个已有的外部类中直接创建一个新类,可分为:静态内部类、成员内部类、局部内部类、匿名内部类四种,和创建方法有些类似,但是这个类是声明在外部类中。在这里要值得一提的是内部类可以使用public等关键字来定义,但是:一个java文件中只能有一个public定义的类是肯定的,所以这里只要看一下就可以了。一般的内部类是不会添加public这些关键字的,这就要说一下内部类的作用了。

好处一:内部类可以直接访问外部类的所有属性和方法,也包括私有属性等;

好处二:通过内部类实现接口的方式可以解决java中无法实现多继承的问题;

好处三:用内部类可以实现回调;

更多的有点需要大家在学习的过程中去发掘。内部类也是一个类,那么对应的创建实例对象是必要的了,那么如何在其他类中实例化对象就是一个比较需要注意的问题了:

public class ThreeInToOutTest {
public static void main(String[] args) {


//调用静态内部类对象
Person.Woman p=new Person.Woman();
//调用非静态内部类对象
//Person.Man m=new Person.Man();//报错
//非静态方法的调用:
Person p1=new Person();
Person.Man m=p1.new Man();
//优化后
Person.Man m1=new Person().new Man();
/*如何分别调用内部类和外部类中重名的变量值 * */
m.setName("input");
}


}
class Person{
public Person() {
//Person的构造方法
}
private String name="person";
private int age;

//成员变量内部类
public class Man{
private String name="man";
private String run;
public Man() {

}
public void setName(String name) {
System.out.println(name);//调用通过SetName方法传入的name值
System.out.println(this.name);//调用Man类的name值
System.out.println(Person.this.name);//调用Person的name值
}
}
//静态成员内部类
static class Woman{
private String sing;
}
}

相信懂得人看了会感觉挺简单,但是基础比较薄弱的在看的过程中可能会有一些吃力,如果吃力可以先找一些关于如何创建类实例、static的使用这些常用的知识点。

0 0
原创粉丝点击