- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章一篇文章带你了解Java方法的使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
方法就是一个功能 。
方法就是一个代码片段,类似于 C 语言中的 “函数” 。
1
2
3
4
5
|
//方法定义
修饰符 返回值类型 方法名称([形式参数列表 ...]){
方法体;
[
return
返回值];
}
|
注意事项:
在现阶段,方法的修饰暂时采用—> public static 固定搭配[ ]内部的表示可有可无方法必须定义在类中方法名要采用小驼峰的形式Java中的返回值可有可无,看业务需求,若有返回值,返回值类型需要和方法的返回值类型匹配行书参数列表:形参,是实参的一份拷贝方法体:具体功能的实现
因为当前所有方法写完之后,若调用,都会在main方法中调用,而main方法是public static的 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public
class
DemoOne {
// 实现一个两个整数相加的方法
public
static
int
add(
int
x,
int
y){
return
x+y;
}
public
static
void
main(String[] args) {
int
a =
212
;
int
b =
454
;
//方法调用
int
ret = add(a,b);
System.out.println(ret);
}
}
|
一个程序猿最厉害的不在于能写出多牛X的代码,而是能够解决代码的问题!! 。
打断点 。
点击后,会出现下边这个框 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//求三个数的最大值
public
static
int
maxThreeNum(
int
num1,
int
num2,
int
num3){
return
maxNum(maxNum(num1,num2),num3);
//方法的重复调用
}
//两个数的最大值
public
static
int
maxNum(
int
x,
int
y){
return
x>y ? x : y;
}
public
static
void
main(String[] args) {
Scanner scan =
new
Scanner(System.in);
int
num1 = scan.nextInt();
int
num2 = scan.nextInt();
int
num3 = scan.nextInt();
int
max = maxThreeNum(num1,num2,num3);
System.out.println(
"max="
+max);
}
|
形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
交换两个整型变量
public
static
void
swap(
int
x,
int
y){
int
tmp = x;
x = y;
y = tmp;
}
public
static
void
main(String[] args) {
//交换两个整数
int
a =
10
;
int
b =
20
;
swap(a,b);
System.out.println(a +
" "
+ b);
}
|
运行后会发现,这个方法不能实现交换两个整型变量的功能 。
可用类和对象 / 数组 来实现,后边会讲到 。
方法里交换的是形参 x 和 y 的值,而main方法中打印的是实参 a 和 b 的值 。
实参a和b是main方法中的两个变量,其空间在main方法的栈(一块特殊的内存空间)中,而形参x和y是swap方法中的两个变量,x和y的空间在swap方法运行时的栈中,因此:实参a和b 与 形参x和y是两个没有任何关联性的变量,在swap方法调用时,只是将实参a和b中的值拷贝了一份传递给了形参x和y,因此对形参x和y操作不会对实参a和b产生任何影响.
这里不过多解释,之后写数组章节再作解释 。
1
2
3
4
5
6
7
8
9
10
|
public
static
void
main(String[] args) {
int
[] arr = {
10
,
20
};
swap(arr);
System.out.println(
"arr[0] = "
+ arr[
0
] +
" arr[1] = "
+ arr[
1
]);
}
public
static
void
swap(
int
[] arr) {
int
tmp = arr[
0
];
arr[
0
] = arr[
1
];
arr[
1
] = tmp;
}
|
在方法sumInt中,若要求两小数之和,就不能实现,必须再写一个sumDouble方法,这样使用很不灵活 。
1
2
3
4
5
6
7
8
|
两整数之和
public
static
int
sumInt(
int
x,
int
y){
return
x+y;
}
两小数之和
public
static
double
sumDouble(
double
x,
double
y){
return
x+y;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
方法
1
两整数之和
public
static
int
sum(
int
x,
int
y){
return
x+y;
}
方法
2
两小数之和
public
static
double
sum(
double
x,
double
y){
return
x+y;
}
public
static
void
main(String[] args) {
double
a =
19.9
;
double
b =
18.8
;
double
ret = sum(a,b);
//直接使用 sum
System.out.println(ret);
}
|
上述方法1 和方法2 的关系就是重载 。
构成重载的 3 个条件: 。
方法的重载和重写都是实现多态的方式,区别:重载实现的是编译时的多态性,而重写实现的是运行时的多态性 。
①.重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同 / 参数个数不同)则视为重载 ②.重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常.
重载对返回类型没有特殊的要求,不能根据返回类型进行区分.
一个方法在执行过程中对自身的调用,称为"递归" 。
求n的阶乘
1
2
3
4
5
6
|
public
static
int
factor(
int
n){
if
(n ==
1
){
return
1
;
}
return
n * factor(n-
1
);
}
|
"递" "归"理解:
栈的角度理解:
方法的调用是要在栈上开辟内存的,给这个方法开辟栈帧 。
思考递归,要横向思考,不要试图去走进递归的代码,代码执行,是纵向执行 。
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我的更多内容.
原文链接:https://blog.csdn.net/m0_47988201/article/details/119645025 。
最后此篇关于一篇文章带你了解Java方法的使用的文章就讲到这里了,如果你想了解更多关于一篇文章带你了解Java方法的使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试创建一个 Django 网站,每次在本地主机上运行/articles/api/article 页面时:我都会收到此回溯: Environment: Request Method: GET R
我正在尽最大努力理解开放图谱协议(protocol)中的一切含义阅读 FB page在上面和 OGP Page .这在 FB 和 OGP 的世界中究竟意味着什么: Note that the Open
我的 HTML/CSS 中存在页脚与文章内容重叠的问题。是的,我一直在网上搜索但似乎没有任何效果,我希望你知道它有什么问题。我在这里做了一个codepen: CodePen LINK
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我可以将变量作为警报显示在函数中,但无法将变量传递给文章。我做错了什么? 我知道“a”保存了正确的信息,因为我已经通过警报显示了它。 我尝试使用以下方式传递变量:placeholderContent.
这个问题已经有答案了: Rails article helper - "a" or "an" (6 个回答) 已关闭 3 年前。 是否有类似 [#pluralize in ActiveSupport]
这个问题已经有答案了: Rails article helper - "a" or "an" (6 个回答) 已关闭 3 年前。 是否有类似 [#pluralize in ActiveSupport]
我有以下型号。 Book has Articles (Article has foreign key to Book) Article has Images (Article has upto #ma
我创建了一个页面,该页面显示了单个 类别下的所有帖子,即如果我单击类别音乐,我将获得与音乐类别相关的所有文章。 但我的目标是创建一个过滤选项,它可以过滤掉某些类别,并且只显示与您过滤的类别相关的所有帖
我使用这样的代码: $query = "SELECT introtext FROM #__content WHERE alias = '$alias'"; $db->setQuery($query);
我在主页上设置了一些特色文章。显示的所有文章似乎都剩下太多填充。我知道足以进入 css 并在 layout.css 上编辑 .itembody 的填充或边距,但似乎没有任何改变。我希望我的文章通过模块
ORM 中存储文章及其修订的最佳实践是什么?当我自己用SQL存储时,我曾经有以下结构: articles [id, parent_id, name, text] 通过parent_id,我可以轻松识
我的 HTML : Interest About Interest
我正在用jade构建一个nodejs、express、mongodb博客。 我的文件夹结构是:项目/ 模块/ 观点/ 索引.jade 应用程序.js 文章提供者内存.js 文章provider-mon
我的问题比较具体,至少对我来说是这样。具体是因为在做了很多搜索之后我找不到任何有用的东西。因此,正如标题所说,我正在寻找一种算法,它会发现输入中给出的两篇文章是否“匹配”,但不是通常的字符串匹配意义上
关闭。这个问题是off-topic .它目前不接受答案。 9年前关闭。 锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我无法弄清楚动态编程的原
我有这个问题。我正在建立一个社交网站,我必须在两栏中创建帖子。父容器是一个部分,元素“post”是样式为 float: left 的文章。我如何让滑到那些较短的下方创建的空白空间的帖子? 最佳答案 c
这里有几个关于文件与数据库的问题,但我仍然不确定使用什么以及为什么在我的案例中应该使用它。 我的网站上有很多 HTML 文章(长度在几百到几千字之间)。在数据库 (MySQL) 中,我有一个没有搜索索
微信公众号文章 Semantic Kernel —— LangChain 的替代品? [1] ,它使用的示例代码是Python ,他却发了这么一个疑问: 支持的语言对比(因为 Sem
我想编写一个 polymer 元素来显示一些 WordPress 文章。 http://www.jsv-lippstadt.de/?json=get_category_posts&slug=app
我是一名优秀的程序员,十分优秀!