滚雪球学Java(37):深入了解Java方法作用域和生命周期,让你写出更高效的代码

简介: 【5月更文挑战第12天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!


前言

  在Java开发中,方法是程序的基本构建块之一。在编写Java代码时,必须了解Java方法的作用域和生命周期。这将有助于您更好地编写高效的Java代码。

摘要

  本文将深入了解Java方法的作用域和生命周期,包括方法的访问修饰符、方法内部变量的作用域、方法的生命周期等。同时,本文还将通过源代码、方法介绍、测试用例等方式,让您更好地理解Java方法的相关知识。

正文

方法的访问修饰符

  Java方法的访问修饰符有public、protected、private和默认四种。

  • public方法可以被任何类和任何包中的其他代码访问。
  • protected方法可以被同一包中的代码访问,也可以被不同包中的子类访问。
  • private方法只能被同一类中的其他方法调用,不能被其他类访问。
  • 默认方法(没有修饰符)只能被同一包中的代码访问。

方法内部变量的作用域

  在Java方法内部定义的变量,只能在该方法中使用。这些变量被称为局部变量。局部变量的生命周期从方法开始执行时开始,到方法执行结束时结束。

方法的生命周期

Java方法的生命周期可以分为四个阶段。

  1. 编译时
    方法的编译时阶段,主要是对方法进行语法分析和编译,生成字节码文件。

  2. 类加载时
      当类被加载时,方法也会被加载到内存中。此时,会为方法分配一块栈空间。在方法被调用时,栈空间会被使用,存储方法中定义的局部变量和方法的执行状态。

  3. 执行时
      当方法被调用时,会创建一个新的栈帧(Stack Frame),用于存储方法的局部变量和执行状态。方法执行完毕后,栈帧会被弹出,释放栈空间。

  4. 卸载时
      当类被卸载时,与之关联的方法也会被卸载。此时,方法中使用的内存空间会被释放。

源代码

public class MethodScopeDemo {
   
   
    private int privateNumber = 10;
    protected int protectedNumber = 20;
    public int publicNumber = 30;

    public void publicMethod() {
   
   
        int localVariable = 100;
        // 在此处可以访问 privateNumber、protectedNumber 和 publicNumber
        // 无法访问其他类中定义的 private 变量
    }

    protected void protectedMethod() {
   
   
        int localVariable = 200;
        // 在此处可以访问 protectedNumber 和 publicNumber
        // 无法访问其他类中定义的 private 变量
    }

    private void privateMethod() {
   
   
        int localVariable = 300;
        // 在此处可以访问 privateNumber 和 publicNumber
        // 无法访问其他类中定义的 protected 和 private 变量
    }

    void defaultMethod() {
   
   
        int localVariable = 400;
        // 在此处可以访问 publicNumber
        // 无法访问其他类中定义的 protected、private 和默认变量
    }
}

代码方法介绍

  • publicMethod:公共方法,可以被其他类和其他包中的代码访问。
  • protectedMethod:保护方法,可以被同一包中的代码访问,也可以被不同包中的子类访问。
  • privateMethod:私有方法,只能被同一类中的其他方法调用,不能被其他类访问。
  • defaultMethod:默认方法(没有修饰符),只能被同一包中的代码访问。

测试用例

public class MethodScopeDemoTest {
   
   
    @Test
    public void testPublicMethod() {
   
   
        MethodScopeDemo demo = new MethodScopeDemo();
        demo.publicMethod();
    }

    @Test
    public void testProtectedMethod() {
   
   
        MethodScopeDemo demo = new MethodScopeDemo();
        demo.protectedMethod();
    }

    @Test
    public void testPrivateMethod() {
   
   
        MethodScopeDemo demo = new MethodScopeDemo();
        demo.privateMethod();
    }

    @Test
    public void testDefaultMethod() {
   
   
        MethodScopeDemo demo = new MethodScopeDemo();
        demo.defaultMethod();
    }
}

全文小结

  本文深入了解了Java方法的作用域和生命周期,包括方法的访问修饰符、方法内部变量的作用域、方法的生命周期等。同时,本文还通过源代码、方法介绍、测试用例等方式,让读者更好地理解Java方法的相关知识。掌握了这些知识后,读者可以编写更高效的Java代码。

附录源码

  如上涉及所有源码均已上传同步在 Gitee,提供给同学们一对一参考学习,辅助你更迅速的掌握。

总结

  Java方法是程序的基本构建块之一,必须了解Java方法的作用域和生命周期。在实际开发中,应选择合适的访问修饰符,定义方法内部的局部变量,合理使用栈空间等,以提高程序的执行效率。同时,还应编写测试用例,保证程序的正确性。

☀️建议/推荐你


  无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门Java编程,就像滚雪球一样,越滚越大,指数级提升。

目录
相关文章
|
22小时前
|
Java 数据处理 开发者
Java中的Lambda表达式:简化你的代码之路
【8月更文挑战第66天】Lambda表达式在Java 8中首次引入,它为Java开发者提供了一种更简洁、更灵活的编程方式。本文将通过简单易懂的语言和实际代码示例,引导你理解Lambda表达式的基本概念、语法结构以及如何在Java项目中应用它来简化代码。无论你是Java新手还是有经验的开发者,这篇文章都将帮助你更好地掌握这一强大的工具。
28 11
|
7天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
20 5
|
9天前
|
Java API 开发者
探索Java中的Lambda表达式:简洁与强大的代码实践
本文深入探讨Java中Lambda表达式的定义、用法及优势,通过实例展示其如何简化代码、提升可读性,并强调在使用中需注意的兼容性和效率问题。Lambda作为Java 8的亮点功能,不仅优化了集合操作,还促进了函数式编程范式的应用,为开发者提供了更灵活的编码方式。
|
5天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
7天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
18 4
|
8天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第27天】在Java 8中引入的Lambda表达式为编程带来了革命性的变化。通过简洁的语法和强大的功能,它不仅简化了代码编写过程,还显著提升了程序的执行效率。本文将深入探讨Lambda表达式的本质、用法和优势,并结合实例演示其在实际开发中的应用。无论你是Java新手还是资深开发者,都能从中获得启发,优化你的代码设计。
|
9天前
|
安全 Java API
Java根据URL获取文件内容的实现方法
此示例展示了如何安全、有效地根据URL获取文件内容。它不仅展现了处理网络资源的基本技巧,还体现了良好的异常处理实践。在实际开发中,根据项目需求,你可能还需要添加额外的功能,如设置连接超时、处理HTTP响应码等。
44 4
|
9天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
24 3
|
8天前
|
存储 Java 索引
使用java代码实现左右括号查找
使用java代码实现左右括号查找
下一篇
无影云桌面