java类修饰词和内部类详解

控制属性:

同一类内     同一包内      子类     所有类

public            可             可         可       可

protected         可             可         可       不可

default           可             可        不可      不可

private           可            不可       不可      不可

注:当成员声明为private时,内部类也不可访问外部类的私有成员。

abstract:

1.修饰类、接口、成员方法。不管是否被abstract修饰,接口总是有抽象属性。

2.若修饰类,则该类不能生产实例。

3.抽象方法只能在抽象类或接口中定义,不能再飞抽象类中定义;抽象方法只被定义而不实现,即不含方法体。

4.抽象类的子类和实习接口的类:若为非抽象类,则在定义时必须覆盖其父类或接口内的所有抽象方法;若为抽象类,则可以覆盖部分或者不覆盖。

fianl:

1.修饰非抽象的类、类或接口的成员域和类的非抽象的成员方法。

2.若修饰类,则该类不能派生出子类。

3.若修饰成员域,a.若成员域还被static修饰,则成员域只能在定义时赋值,而且之后不能修改;b.若只被final修饰而未被static修饰,则该成员域只能在定义时或构造方法中赋值,而且只能赋值一次之后不能修改。

4.若修饰成员方法,则该方法不能被子类覆盖。

static:

1.同一类内,静态成员方法不能直接(即不通过类名)引用本类的非静态成员变量和非静态成员方法,但可直接引用静态成员。

2.所有实例共用一个静态成员变量,即在一个实例中对静态成员变量修改,其他实例中的静态成员变量也同时 被系统修改。

3.静态成员可通过类名和实例名两种方法访问。

4.static可修饰实名内部类,但不可修饰普通类(即与内部类相对应的外部类)和匿名内部类。

5.实名内部类若包含静态成员方法,则该类必须声明为静态类内部类;若非静态实名内部类包含静态成员变量(即静态成员域),则该静态成员变量还需声明为final属性。

inner class(内部类):

1.分为实名内部类(有类名)和匿名内部类(没有类名)。实名内部类除了声明为static时用法与普通类不同,其他用法相似;匿名内部类不能用static和abstract修饰,不能包含静态成员方法,不能派生出子类,实名内部类均可以。实名内部类还可被private和protected修饰。

2.实名内部类:

a.在自己或者外部类中定义实例:实名内部类名 实例名;在外部类之外的类中定义实例:外部类名.实名内部类名 实例名;。

b.创建静态实名内部类的实例对象:new 外部类名.内部类名(构造方法参数列表);创建非静态实名内部类的实例对象:外部类实例名.new 实名内部类名(构造参表);若在自己或者外部类中定义,则上面的外部类名可以省略。

c.实名内部类(静态或非静态的)的静态成员的访问方式:外部类名.实名内部类名.静态成员名;或者 内部类实例名.成员名;。

非静态成员:内部类实例名.成员名;。

3.内部类可多重嵌套定义。

转载于:https://blog.51cto.com/9812926/1637756

java类修饰词和内部类详解相关推荐

  1. Java类的加载过程详解 面试高频!!!值得收藏!!!

    受多种情况的影响,又开始看JVM 方面的知识. 1.Java 实在过于内卷,没法不往深了学. 2.面试题问的多,被迫学习. 3.纯粹的好奇. 很喜欢一句话: 八小时内谋生活,八小时外谋发展. 望别日与 ...

  2. 命令提示符使用java 类报错_lt;03gt;详解第一个Java程序

    详解第一个Java程序视频教程: Java轻松入门经典教程​ke.qq.com 1.编写源程序 新建一个文本文档,名称为HelloWorld,后缀为.java,右键编辑. 编写一个打印HelloWor ...

  3. java类的完整生命周期详解

    目录 一.概述 二.过程一:Loading(加载)阶段 1.加载完成的操作 (1)加载的理解 (2)加载完成的操作 2.二进制流的获取方式 3.类模型与Class实例的位置 (1)类模型的位置 (2) ...

  4. java中局部内部类_Java内部类详解--成员内部类,局部内部类,匿名内部类,静态内部类...

    一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...

  5. Trembling ! Java类的加载过程详解(加载验证准备解析初始化使用卸载)

    [1]类的生命周期 一个类从加载进内存到卸载出内存为止,一共经历7个阶段: 加载->验证->准备->解析->初始化->使用->卸载 其中,类加载包括5个阶段: 加载 ...

  6. Java类管理机制——包的详解

    目录 前言: 一.包的概念 二.包的定义 (1)语法 (2)命名规则 (3)命名规范 三.包的引用 (1)加载需要使用的类 (2)加载整个包 (3)直接使用包名.类名作为前缀 (4)常用包 四.Cla ...

  7. mybatis java类注解式_mybatis注解详解

    http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html mybatis的原身是ibatis,现在已经脱离了apache基金会,新官网是http://ww ...

  8. 【JavaSE】Java类和对象(重点详解)_Java SE

    ✨作者:@小孙的代码分享 ✨专栏:<Java SE> ✨送给各位的一句话:空杯心态 才能学到新知 ✨希望大家看完博客可以有所收获,别忘了,点赞+评论! 1.面向对象 我们开始学习编程遇到了 ...

  9. [转] Java内部类详解

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...

最新文章

  1. ESXi6.5环境搭建(五:常见问题及解决方案实验总结)
  2. 73-递归函数1:阶乘
  3. getline读取不等待输入的问题
  4. 从近年顶会论文看领域自适应(Domain Adaptation)最新研究进展
  5. unsigned int mysql_mysql 中int类型字段unsigned和signed的探索
  6. 看完这篇买车不用坐引擎盖哭啦
  7. 应届生怒怼管理层后续:已离职、被标记永不录用?腾讯张军回应...
  8. 一起学爬虫(Python) — 02
  9. java 爬楼梯算法_9.1 爬楼梯
  10. 线程数据共享:pthread_getspecific和pthread_setspecific
  11. 外贸员需要知道的那些事儿
  12. 阿里云DNS 新增云上线路的智能解析功能
  13. linux系统下多终端管理工具,terminator
  14. Docker:架构分解
  15. 1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知
  16. 彻底删除2345输入法
  17. macOS键盘定制神器Karabiner Elements
  18. 《MySQL学习》 索引 下 覆盖索引,MRR,联合索引
  19. 自己做的上海市公积金贷款计算器
  20. Open3d基础控件

热门文章

  1. MapBar和MapInfo中的比例尺[更新:MapBar比例尺是正确的]
  2. 字符集编码转换--MFC
  3. UTF8,Unicode 的区别(zt)
  4. lua 获得系统时间
  5. C++基础部分_C++文件操作_二进制文件的写操作---C++语言工作笔记078
  6. AndroidStudio_你的主机中的软件中止了一个已建立的连接---Android原生开发工作笔记123
  7. Ruoyi框架Maven编译不通过的问题---SpringCloud Alibaba_若依微服务框架改造---工作笔记006
  8. Spring Security OAuth2.0_实现分布式认证授权_网关资源服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记152
  9. SpringCloud工作笔记076--- CheckStyle插件提高java代码质量
  10. resnet18 结构