当前位置: 首页 > news >正文

P01-何谓Java方法

P01-何谓Java方法

一、System.out.println()分析

image-20240831103526426

二、剖析方法

谈到方法,我就突然想到了c++函数:

其实:Java 方法和 C++ 函数在许多方面确实有类似之处,但它们也存在一些显著的差异。下面是它们的一些共同点和不同点:

共同点

  1. 功能单位
    • Java 方法C++ 函数 都是用于封装功能的代码块,可以被调用以执行特定的任务或操作。
  2. 参数和返回值
    • 两者都可以接收参数并返回值。你可以定义方法/函数以处理输入并输出结果。
  3. 可重用性
    • 方法和函数都支持代码的重用,通过调用可以避免代码重复。

不同点

  1. 语法

    • Java 方法

      的定义包含在类中,其语法如下:

      public returnType methodName(parameters) {// method body
      }
      
    • C++ 函数

      可以在类中(作为成员函数)或者在类外定义,其语法如下:

      returnType functionName(parameters) {// function body
      }
      

      如果是成员函数,还可以是:

      class ClassName {public:returnType methodName(parameters) {// method body}
      };
      
  2. 对象导向

    • Java 方法 是对象导向编程(OOP)的一部分,总是与类相关联。Java 不支持全局函数。
    • C++ 函数 可以是全局的,也可以是类的成员函数。C++ 支持全局函数和命名空间中的函数。
  3. 内存管理

    • Java 是一个内存管理相对自动化的语言,内存分配和垃圾回收由 JVM 处理。
    • C++ 要求程序员手动管理内存,包括分配和释放内存。C++ 允许更直接的内存操作。
  4. 方法重载和运算符重载

    • Java 方法 支持方法重载,即可以定义多个同名的方法,只要它们的参数列表不同。
    • C++ 函数 支持函数重载和运算符重载,允许你为不同的参数类型或操作符定义不同的行为。
  5. 访问控制

    • Java 方法 的访问控制由访问修饰符(如 public, protected, private)控制,且所有方法默认属于类的实例。
    • C++ 函数 也有访问修饰符(public, protected, private),但全局函数和成员函数的访问控制是不同的。

总的来说,尽管 Java 方法和 C++ 函数在目的和结构上类似,但它们在具体实现和语言特性上有所不同。

三、实际代码演示

public class Demo07 {//main方法public static void main(String[] args) {int sum = add(1,2);System.out.println(sum);}//加法public static int add(int a,int b){return a+b;}
}
设计方法原则

设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就就是一个方法只完成1个功能,这样利于我们后期的扩展。

四、方法的定义

image-20240831130417259

  • 修饰符:修饰符,这是可选的,定义了该方法的访问类型。(例如:public、static、final)
  • 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void
  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。(名字随便取,但要遵守命名规范)
  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
    形式参数:在方法被调用时用于接收外界输入的数据。
    实参:调用方法时实际传给方法的数据。
  • 方法体:方法体包含具体的语句,定义该方法的功能

方法的调用

image-20240831145151720

比大小方法

public class Demo08 {public static void main(String[] args) {int max = max(10,10);System.out.println(max);}//比大小方法public static int max(int num1,int num2){int result = -1;if(num1==num2){System.out.println("num1==num2");return 0;//终止方法}if(num1>num2){result = num1;return result;}else{result =num2;return result;}}
}

五、方法的重载

image-20240831151253275

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Nginx: 使用KeepAlived配置实现虚IP在多服务器节点漂移及Nginx高可用原理
  • macos 10.15 Catalina 可用docker最新版本 Docker Desktop 4.15.0 (93002) 下载地址与安装方法
  • 视觉辅助应用场景
  • JAVA:文字写入图片、图片插入图片
  • 在Java中,获取输入内容可以通过多种方式实现,以下是三种常用的方式:Scanner、BufferedReader 和 Console 的具体代码示例
  • 51单片机.之 UART串口
  • JVM下篇:性能监控与调优篇-04-JVM运行时参数
  • MySQL场景测试题
  • 【wsl2】从C盘迁移到G盘
  • MySQL高阶练习题1- 寻找面试候选人
  • 网络编程(学习)2024.8.27
  • 书生大模型实战营闯关记录----第十一关:LMDeploy 量化部署进阶实践 KV cache量化部署,W4A16 模型量化和部署
  • 数字化转型中的数据应用:挑战、机遇与追赶之路
  • sql高并发如何解决
  • 【vue3】wangEditor 5在vue3中的使用
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Angular2开发踩坑系列-生产环境编译
  • Java编程基础24——递归练习
  • leetcode46 Permutation 排列组合
  • Redis的resp协议
  • spring security oauth2 password授权模式
  • SQLServer之创建显式事务
  • Vue UI框架库开发介绍
  • Vue2.0 实现互斥
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 将 Measurements 和 Units 应用到物理学
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 漂亮刷新控件-iOS
  • 设计模式走一遍---观察者模式
  • 深入浅出webpack学习(1)--核心概念
  • 什么是Javascript函数节流?
  • 树莓派 - 使用须知
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 小试R空间处理新库sf
  • 仓管云——企业云erp功能有哪些?
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​渐进式Web应用PWA的未来
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #VERDI# 关于如何查看FSM状态机的方法
  • (09)Hive——CTE 公共表达式
  • (1)Jupyter Notebook 下载及安装
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (26)4.7 字符函数和字符串函数
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (pytorch进阶之路)扩散概率模型
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四)鸿鹄云架构一服务注册中心
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NET CLR基本术语
  • .net core 外观者设计模式 实现,多种支付选择
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性