方法的使用

1.什么是方法(method)

在java中方法就是一个代码片段.。几乎相当于c语言的函数。

2.方法定义

方法跟函数是几乎一样的。所以语法是大差不差的。就多了一点东西。之前我们在c语言里已经很详细讲过了函数。这里就简便的讲一下。

相比c语言函数多了个修饰符 。

现在看下其注意事项:

 1. 修饰符:现阶段直接使用public static 固定搭配

2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void。而且返回一个值所有情况都要考虑,否则会报错。

3. 方法名字:采用小驼峰命名

4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

5. 方法体:方法内部要执行的语句

6. 在java当中,方法必须写在类当中

7. 在java当中,方法不能嵌套定义

8. 在java当中,没有方法声明一说,而在c语言是有函数声明的。这是因为c语言编译是自上而下,而java编译是全局的

9.跟c语言一样,在Java中main方法也作为程序的入口从而运行,其有且只能有一个,如果缺少main方法则不能运行该程序。之后随着学习更多的知识会对其有更清晰的认识,现在对其的认知还是太模糊了。 比如我们不清楚是一个类中只能有一个main函数还是一个文件中只能有一个main函数。

3. 方法调用

这个很简单直接看文案吧。

4.方法中实参和形参的关系 

跟c语言一样,也有传值调用和传址调用。

传值调用

太简单了直接看文案

 

传值调用不影响函数外部的值,如果要影响,则要传址调用

传址调用 

在c语言里传址调用是用了指针,而在java中没有指针这种语法,所以java需要用到其他东西。 而这些东西我们现在还没学,所以等到学习数组再详细解释吧。

 5.没有返回值的方法

很简单,直接看文案吧。 

6.方法的重载 

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。 

public class TestMethod {public static void main(String[] args) {add(1, 2);                // 调用add(int, int)add(1.5, 2.5);            // 调用add(double, double)add(1.5, 2.5, 3.5);       // 调用add(double, double, double)}public static int add(int x, int y) {return x + y;
}public static double add(double x, double y) {return x + y;}public static double add(double x, double y, double z) {return x + y + z;}
}

方法的重载注意事项:

1. 方法名必须相同

2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序不同,其中有一个不同参数列表就不同了)

3. 与返回值类型是否相同无关

// 注意:两个方法如果仅仅只是因为返回值类型不同,是不能构成重载的,下面就是个很好的例子

如果发生了方法的重载,编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法。

7.方法签名 

在同一个作用域中不能定义两个相同名称的变量。那为什么类中就可以定义方法名相同的方法呢?

这里就要说到方法签名了。

方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字即方法签名。(这才是方法真的名字)

下面给大家看下文案吧,方法签名这个知识点知道就好,不需要过度讲述。

8.递归 

递归在c语言里就学过了,在java中递归跟c语言的是完全一样的,所以我们就复习一下,看个文案就行了。

这里就说一个重点:递归不能没有起始条件,否则会死循环运行,从而一直产生栈帧,导致栈溢出,程序崩溃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/525078.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅述字典攻击

一、前言 字典攻击是一种常见的密码破解方法,它使用预先编制的字典文件作为攻击字典,通过尝试猜测密码的方式来破解密码。下面是一个关于字典攻击的博客,希望能够为您了解字典攻击提供帮助。 二、字典攻击概述 字典攻击是一种密码破解方法&…

义乌等保测评公司有哪些?用哪款堡垒机好?

对于义乌,相信大家都听过,也都知道,耳熟能详。这不有义乌小伙伴在问,义乌等保测评公司有哪些?用哪款堡垒机好?今天我们就来简单聊聊。 义乌等保测评公司有哪些? 目前浙江义乌本地暂未有正规等保…

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(三)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(前导) Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(一) Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二) 八、板级验证 1.验证内容 通过电脑…

套接字的地址结构,IP地址转换函数,网络编程的接口

目录 一、套接字的地址结构 1.1 通用socket地址结构 1.2 专用socket地址结构 1.2.1 tcp协议族 1.2.3 IP协议族 二、IP地址转换函数 三、网络编程接口 3.1 socket() 3.2 bind() 3.3 listen() 3.4 accept() 3.5 connect() 3.6 close() 3.7 recv()、send() 3.8 recv…

云原生构建 微服务、容器化与容器编排

第1章 何为云原生,云原生为何而生 SOA也就是面向服务的架构 软件架构的发展主要经历了集中式架构、分布式架构以及云原生架构这几代架构的发展。 微服务架构,其实是SOA的另外一种实现方式,属于SOA的子集。 在微服务架构下,系统…

和数软件:区块链技术的爆发与冲击

什么是区块链?它是如何发展而来的?应用在哪些领域?将会对我国的社会经济产生哪些重大影响? 什么是区块链 区块链作为一种底层技术,最早的实践是数字货币。根据最早的中本聪定义,区块链实质上是一种基于网…

代码理解 pseudo_labeled = outputs.max(1)[1]

import torchls torch.Tensor([[0.2,0.4],[0.3,0.2]]) print(ls.max(1))

【CSP试题回顾】202009-1-称检测点查询

CSP-202009-1-称检测点查询 解题代码 #include <iostream> #include <vector> #include <cmath> #include <algorithm> using namespace std;int n, X, Y, x, y; struct MyDistance {int index;int dis; }; vector<MyDistance>list; bool cmp(…

Django工具

一、分页器介绍 1.1、介绍 分页,就是当我们在页面中显示一些信息列表,内容过多,一个页面显示不完,需要分成多个页面进行显示时,使用的技术就是分页技术 在django项目中,一般是使用3种分页的技术: 自定义分页功能,所有的分页功能都是自己实现django的插件 django-pagin…

《Effective Modern C++》- 极精简版 15-21条

本文章属于专栏《业界Cpp进阶建议整理》 继续上篇《Effective Modern C》- 极精简版 5-14条。本文列出《Effective Modern C》的15-21条的个人理解的极精简版本。 Item15、尽量使用constexpr constexpr形容对象 constexpr对象都是const&#xff0c;但是const对象不一定是conste…

React-useEffect

1.概念 说明&#xff1a;用于在React组件中创建不是由事件引起而是由渲染本身引起的操作&#xff0c;比如发送 A列AX请求&#xff0c;更改DOM等。 2.案例 // useEffect用于组件不是由事件引起的而是由渲染本身引起的操作&#xff0c;如ajax,更改Dom等。 import { useEffect,…

Igraph入门指南 4

二、图的创建 图分有向图和无向图&#xff0c;所以图的创建有各自的实现方式。 1、手工创建图&#xff1a; 1-1 通过文本创建&#xff1a;graph_from_literal 通过每项提供两个顶点名&#xff08;或ID号&#xff09;作为一条边的格式&#xff0c;手动创建图&#xff0c;顶点…