为什么Java方法里面不能再嵌套方法?

直接原因:

  这是Java基本语法定义的,方法中不可以再次声明方法,只能调用其他的方法。

个人理解:
  1.方法栈是需要一个载体的,这个载体就是Class,如果一个方法的上一级不是一个类,就说明没有载体。
  2.因为没必要,所以不能用。

特殊情况:如果出现方法里面嵌套方法,那只有一种情况,那就是方法里面定义了内部类,里面的方法属于内部类中的方法。

下面将说明为什么没有必要?
  1.从Java组成结构来看: 
     Java程序是由类组成的。
     Java类中只有属性和方法两大模块。所以,方法,属性必须直属于某个类。
  2.从方法来看:
    如果是方法,只有两种情况,要么有返回值,要么没有返回值。
          那么我们来看看嵌套的方法。
      2.1 有返回值:
        如果有返回值的话,return 值;这个值一定返回到最外层的方法,所以这个方法的调用将没有任何意义。
      2.2 没有返回值:
        如果没有返回值,那么这个方法体里面要做的事无非就是过程化的处理数据。所以用方法来处理,更没必要,不利于简化代码。

总上所说:
  1.不允许这样做,由Java结构组成。
  2.没必要这样做,所以不能用。
  3.因为没必要,所以不能这样

为什么Java方法里面不能再嵌套方法?相关推荐

  1. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 使用 MetaClass 进行方法拦截 | 对象上拦截方法 | 类上拦截方法 )

    文章目录 一.使用 MetaClass 进行方法拦截 1.使用 MetaClass 在单个对象上进行方法拦截 2.使用 MetaClass 在类上进行方法拦截 二.完整代码示例 1.对象方法拦截 2. ...

  2. java数组循环动态赋值_04、Java基础语法(循环嵌套、break、continue、方法、方法的重载、数组动态初始化)...

    复习: 流程控制语句 - 顺序结构 - 分支结构 - if-else - switch - 循环结构 - for - while - do...while ctrl + alt + L 格式化代码 & ...

  3. Java基础(21)asList()方法、集合嵌套、Set集合、HashSet集合、LinkedHashSet集合、TreeSet集合

    1. asList()方法 1. Arrays工具类的asList(T - t)方法的使用:将数组转化成集合 2. 传进来基本类型数组和引用类型数组的差别 public class TestDemo0 ...

  4. Java Lambda(语言篇——lambda,方法引用,目标类型,默认方法,函数接口,变量捕获)

    深入理解Java 8 Lambda(语言篇--lambda,方法引用,目标类型和默认方法) 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout ...

  5. android jni中的java调c的两种方法

    Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数. 也就是java虚拟机通过一种机制可以找到对应的C函数  这里就涉及到静态注册和动态注册jni函数的方法 一.这里 ...

  6. Java—重复调用的代码块—方法

    对 java 知识点重新进行了总结与更新,点我查看 在面向对象的程序设计中,方法是一个很重要的概念,体现了面向对象三大要素中"封装"的思想."方法"又被称为&q ...

  7. java中的switch用法,循环,方法,数组以及类

    选择结构语句之switch: switch语句在开发过程中的使用仅次于if语句的使用. switch语句: switch语句格式: switch(表达式) { case 值1: 语句体1; break ...

  8. 【Java SE】(五)方法和递归

    文章目录 前言 一.方法的定义 二.方法的调用 2.1实参和形参的关系 2.2没有返回值的方法 三.方法的重载 3.1.方法的重载概念 3.2方法签名 四.递归 4.1递归的概念 4.2递推执行过程 ...

  9. 一些防止 Java 代码被反编译的方法

    欢迎关注方志朋的博客,回复"666"获面试宝典 由于Java字节码的抽象级别较高,因此它们较容易被反编译.本节介绍了几种常用的方法,用于保护Java字节码不被反编译.通常,这些方法 ...

最新文章

  1. 结构体名和结构体名是个指针的区别
  2. 让IE兼容background-size的方法_background-size ie下使用
  3. 微信官方数据披露:哪些文章更受朋友圈欢迎
  4. C语言嵌入式系统编程修炼之道——背景篇
  5. 笔记 | 《机器学习》中计算学习理论(上)
  6. HDU1106 排序(解法二)(废除!!!)
  7. binlog日志整理
  8. 游戏文案策划:资料推荐
  9. 计算机dns服务器错误或不存在,找不到服务器或 DNS 错误,详细教您找不到服务器或dns错误怎么解决...
  10. ADS1255/6 使用
  11. 学习记录3——PMSM数学建模——simulink内数学模型搭建以及仿真
  12. 微型投影仪第五篇——Metro UI
  13. 光 颜色 波长 眼睛
  14. multisim14晶振在哪里_石英晶振在multisim中哪里
  15. 搭建confluence服务器(详细操作+踩坑说明)
  16. 一文读懂无线充电技术(附方案选型及原理分析)
  17. Python可视化数据分析02、Scrapy框架-强化测试Scrapy-CSS
  18. 练习:科比数据集的处理和预测
  19. 【大数据】城市公交网络分析与可视化(三):获取公交站点信息并可视化站点重要程度
  20. 为CSDN博客添加打赏功能

热门文章

  1. 衡水东方计算机中专学校校长是谁,【表彰盛典】现场直击衡水东方计算机中专学校参加市第九届中职学校技能大赛庆功表彰会...
  2. 第三局晋级赛数据分析 他来了他来了
  3. linux列去重命令,Linux shell命令统计某列去重后的值
  4. git 使用教程(图文并茂)
  5. 51NOD 1596 搬货物
  6. conda create新建环境失败报错:An unexpected error has occurred. Conda has prepared the above report.
  7. shell中spawn什么意思_exec 和 spawn 的区别
  8. 美团点评前端技术体系的思考与实践》知乎 live 文字稿
  9. Shell中单引号和双引号区别
  10. LDR6028 OTG取电传数据方案-直播声卡数据充电转接线方案