Java中特殊的类定义形式

  Java语言是纯面向对象的语言,类是Java语言的主要功能模块。类有很多种形式,除了普通的类以及抽象类、继承类、泛型类等继承与多态形式外,Java语言中还有四种特殊的类定义形式,它们就是内部类、局部类、匿名类和匿名方法。
  在Java语言中,可以将一个类定义在另一个类的内部,定义在其他类内部的类称为内部类,包含其他类的类称为外部类。内部类具有一些特征,包括:1.内部类是类的一个成员,它可以访问所在外部类的私有成员。我们知道,如果一个类的某一成员被定义为private类型,那么它只可以在本类内被使用,不能被其他类所调用。但是,由于内部类定义在外部类的内部,属于外部类的成员。因此,内部类调用外部类的成员,本质上来说仍然是外部类内部的调用,因此并不违背private的原则,但是外部类不能调用内部类的私有成员。2、内部类可以使用只有类成员才可以使用的权限,即private权限和protect权限。我们知道,类的权限只能是public或默认,但是内部类是外部类的成员,自然可以使用只有类的成员才能使用的权限。3、在外部类之外的地方使用内部类,需要通过外部类对象使用。适用场合:1、仅被某一个类使用。2、希望访问某个类的内部成员。3、对有关联关系的类分组管理。
  在Java语言中,如果某一个类只被另外一个类中的某一个方法使用,我们可以把该类定义成该方法的局部类,类似局部变量。局部类是一种特殊的类,局部类访问外部类的成员时不受权限控制,但反过来不行。局部类可以访问所在方法的形参和局部变量,但要求这些形参或局部变量是常量或值不变的变量。与局部变量一样,不能为局部类设定访问权限,也不需要为局部类设定访问权限。局部类主要用于在某个方法内部使用,其他地方不需要使用这个类。注意,内部类和局部类与正常类一样,也可以继承父类和实现接口。
  在Java语言中,如果某个局部类继承了某个父类或实现了某个接口,同时它在该方法中仅被使用了一次,那么我们就可以省略局部类的类名,称为匿名类。匿名类必须继承某个父类或实现某个接口,在定义匿名类类型的引用变量或实现匿名类类型的对象时,必须使用父类或父接口的名字。同时,匿名类只能继承一个父类或实现一个接口,而且,由于匿名类没有类名,也就没有构造方法
  最后,我们要介绍匿名方法。在Java语言中,只包含一个抽象方法的接口成为功能接口,只实现了某个功能借口而没有定义其他成员的类称为功能类,从定义中我们可以看出,功能类中只有一个方法成员。因此,使用功能类创建的对象只包含一个方法成员,一个功能类对象本质上就是一个函数。如果一个功能对象只被使用一次,我们就可以使用匿名类简化对象。Java语言将省略掉方法名和返回值类型的方法称为匿名方法,。匿名方法省去了方法名和返回值,只保留了形参列表和方法体,并且在形参列表和方法体之间添加一个“->”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值