前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在你的女票面前 你没有private属性

在你的女票面前 你没有private属性

作者头像
用户5745563
发布2019-07-04 11:10:38
4570
发布2019-07-04 11:10:38
举报
文章被收录于专栏:码思客码思客
java零基础入门-面向对象篇(十五) 内部类

内部类经常用在编写图形界面,比如swing和安卓的程序,所以在我们通常的web程序中使用较少,但是我们还是有必要来认识一下他。

内部类,顾名思义,就是定义来类内部的类。

内部类有以下几种,成员内部类,局部内部类,匿名内部类,静态内部类,下面一个个来介绍他们。

成员内部类

名字起得很好,看名字就知道是干啥的。成员内部类就是将内部类作为一个外部类的成员,地位跟变量,方法一样。

内部类一个很大的特点就是,就算我在外部类定义了一个私有变量,外部无法访问,但是内部类依然可以访问。

就好像你的微信信息和银卡密码对外人来说是绝对保密的,但是对你的女票来说就完全是另外一回事了。

你的女票可以随时随地的访问你的手机,看看微信里面有些啥消息,看看聊天记录,短信记录等等。如果零花钱不够了,还可以直接用你的手机给他的微信发红包,这操作是不是有一种很熟悉的感觉。

内部类

来看一下内部类的一些特点

1.内部类的实例化与普通类的实例化有区别,因为内部类是外部类的成员,所以使用 外部类 . 内部类 的方法表示要实例化的内部类。使用外部类对象 . new 来表示new关键字来表示要创建内部类对象。

2.当内部类属性和外部类属性相同的时候,要在内部类调用外部类的同名属性,需要使用 外部类 . this 表示外部类的this,然后用外部类的this来调用外部类的属性。

3.内部类和外部类还有一个比较有意思的特点,那就是,内部类可以直接访问外部类的属性,而外部类需要通过内部类的对象来调用内部类属性,而不能直接访问。

这个特点是不是理解起来比较麻烦?那么这样理解吧,你女票想要看你的微信随时可以看,而你要看你女票的微信需要你女票同意才行。顿时感觉这个内部类设计的好人性化。

看私房钱

看到了没有,内部类是可以直接引用到外部类的成员变量的,就算他是私有的。而外部类想要访问到内部类的成员变量,直接引用会报错,需要先将内部类实例化,再用实例去引用。

理解到这里就差不多了,我们看下一个。

局部内部类

名字依然很好,局部内部类跟局部变量很相似,一般定义在方法里面,而且只能在方法内部使用。出了方法,方法内的变量就没法使用了,局部内部类也一样,在方法外不可以调用。

局部内部类

局部内部类有点像一次性使用的类,因为如果需要公用和重复调用,最好设计成外部类,而局部内部类只在方法内可以使用,方法调用完了,局部内部类也就没作用了。

这里要注意的是,局部内部类前面没有加 public,其实不仅仅是public ,所有的访问权限修饰符都不能加,因为没有意义。局部内部类只在方法中有效,所以开发访问权限没有意义。

总之记住一点,怎么使用局部变量,就怎么使用局部内部类。

匿名内部类

局部内部类有点像一次性使用的内部类,其实还有一种就是一次性使用的内部类,那就是匿名内部类。

匿名内部类的使用有个前提,要么继承一个父类,要么实现一个接口。

匿名内部类的使用情况就是只用一次的实现类或者只用一次的子类,有了匿名内部类就不用再去定义一个子类或者实现类。

匿名内部类

首先有一个人的类,有一个花钱的方法,我们不能直接去实现他,如果直接实现它,然后在实现类里面写了花私房钱的方法,就会留下证据。所以我们要想一个方法一次性的实现花私房钱的方法。

前面讲接口的时候说过,接口是不能实例化的,所以不能使用new关键字,但是这里如果使用了匿名内部类,可以在new关键字后面跟上接口名,因为在后面写的是匿名内部类,他实现了接口。所以看上去好像是实例化了接口,实际上是创建了一个实现类去实现了接口并且实例化了一个对象。

如果Person是父类,不是接口,匿名内部类也可以使用,方法类似,因为继承和接口都是实现多态的一种方式,所以匿名内部类的使用也相似。

静态内部类

程序开发中基本用不上。知道有这货就行了。

关于内部类大致了解到这个程度就可以了。

本章是面向对象篇的最后一章。

从下一章开始我会开始介绍更多的java特性,将面向对象的基础打好很重要,后面很多的高级特性和一些工具都是以面向对象为基础的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码思客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档