Java程序设计基础笔记 • 【第8章 方法】
全部章节 >>>>
本章目录
8.1 方法概述
8.1.1 方法的简介
在程序中包含比较复杂的逻辑和功能时,可以将这些功能分解为若干个子功能分别实现,而这些子功能组合在一起,便形成了完整的程序。
方法定义在类中,通过对象完成对它们的调用,最后组成整个程序。通俗的讲,程序就是各个对象对方法的调用。
8.1.2 方法的类
在Java语言中,按照方法定义方式的不同,可以将其分为两种:
系统方法,无需定义,直接调用即可,如:Scanner类的nextInt()等
自定义方法,则为用户自己编写实现。
方法分类:
按照是否有参数:有参的方法、无参的方法。
按照是否有返回值:有返回值的方法、无返回值的方法。
8.1.3 自定义方法简介
语法:
访问修饰符 返回类型 方法名(参数列表) {
//方法体
}
访问修饰符:方法允许被访问的权限范围,其中 public 表示该方法可以被其他任何代码调用。
返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为void;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值。
方法名:定义的方法的名称,必须使用合法的标识符,需用驼峰命名法。
参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。
示例:定义两个数相加的方法
8.1.3 自定义方法调用
语法:
方法在其定义的类中被调用
方法名(参数);
方法在其他类中被调用
对象名.方法名(参数);
8.1.4 实践练习
8.2 无参数无返回值方法
8.2.1 无参数返回值的方法的定义和调用
无参数无返回值的方法是Java语言中形式最为简单的方法,其定义和调用语法如下:
(1)无参数无返回值的方法的定义语法:
public void 方法名( ) {
//方法体
}
(2)无参数无返回值方法的调用语法:
对象.方法名();
示例:输出 5次“Hello World!”,要求定义方法实现信息的输出
public class MethodDemo2 {
//定义方法实现显示Hello World!5次
public void showMsg() {
for (int i = 0; i < 5; i++) {
System.out.println("Hello World!");
}
}
public static void main(String[] args) {
System.out.println("开始输出信息:");
//调用方法
MethodDemo2 md = new MethodDemo2();
md.showMsg();
System.out.println("输出信息完毕!");
}
}
8.2.2 方法的调用过程
由刚刚的例子可知,程序执行过程有别于之前的程序,当程序中存在方法调用时,程序执行的过程将发生改变。
示例:方法在定义时必须定义在类的内部、其他方法体之外,不能嵌套定义,但是方法的调用是可以嵌套的。
public class MethodDemo3 {
public void methodB() {
System.out.println("进入MethodB方法执行");
System.out.println("MethodB方法执行完毕");
}
public void methodA() {
System.out.println("进入MethodA方法执行");
System.out.println("调用MethodB方法");
methodB();
System.out.println("MethodA方法执行完毕");
}
public static void main(String[] args) {
MethodDemo3 md = new MethodDemo3();
System.out.println("进入Main方法执行");
System.out.println("调用MethodA方法");
md.methodA();
System.out.println("Main方法执行完毕");
}
}
8.2.2 实践练习
8.3 有参数无返回值的方法
8.3.1 有参数无返回值的方法定义和调用
无参数无返回值的方法是形式最为简单的一种方法,但是功能上存在很大的局限性,若要实现更加灵活的功能,可以为方法提供参数,这样会大大提升方法的灵活性。
语法:
访问修饰符 void方法名(形式参数列表) {
方法体;
}
调用语法:
方法名(实际参数列表);
示例:实现按指定次数输出指定信息
public class ShowMsgDemo {
//定义方法实现按指定次数输出指定信息
public void showMsg(String message, int count) {
for (int i = 0; i < count; i++) {
System.out.println(message);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要输出的信息:");
String msg = sc.nextLine();//不会在缓冲区保留\r
System.out.println("请输入要输出的次数:");
int nums = sc.nextInt();
//调用方法
ShowMsgDemo smd = new ShowMsgDemo();
smd.showMsg(msg, nums);
}
}
8.3.2 参数传递的过程
方法参数是主调方法与被调方法进行数据传递的主要渠道,方法的参数分为形式参数和实际参数两种:
形式参数出现在方法定义中,在整个方法内部有效。
实际参数出现在主调方法中,其作用是将实参的值传递给被调方法的形参,从而实现主调方法向被调方法传递数据的功能。
要实现正确的参数传递,形参列表与实参列表在参数的个数、类型以及顺序上必须一一对应。
8.3.3 实践练习
8.4 成员变量与局部变量
类中定义的属性为成员变量,方法内部定义的变量为局部变量。
8.4.1 成员变量
成员变量指的是在类范围里定义的变量,也就是属性。
语法:
实例.实例成员名
示例:每个实例的实例成员被实例所拥有,相同类型类的不同实例,它们的实例字段互不影响。
public static void main(String[] args) {
People p1 = new People();
p1.name = "张三";
p1.money = 1000;
People p2 = new People();
p2.name = "李四";
p2.money = 5000;
// 调用方法
p1.showMoney();
p2.showMoney();
}
8.4.2 局部变量
局部变量分为三类:
- 方法的参数
- 方法内部声明的变量
- 代码块中声明的变量。
局部变量的作用域相对比较小,如方法的参数和方法内声明的变量都只在方法体内能够正常访问,超出方法范围后是无法访问到的。
代码块中的变量。
如果一个类中成员变量和局部变量同名:
示例:成员变量和局部变量同名。
//成员变量
String name = "zhangsan";
public void test(){
//局部变量
String name = "lisi";
System.out.println(name);
}
public static void main(String[] args) {
SameNameDemo snd = new SameNameDemo();
snd.test();
}
8.4.3 实践练习
总结:
- 定义方法要确定访问修饰符、返回类型、方法名和参数列表。
- 方法的参数分为形参与实参,形参是方法定义时在参数列表中声明的参数,实参是调用方法时传给形参的值。
- 类中的变量分为成员变量和局部变量,成员变量是类的属性,局部变量是指在方法中或方法语句块中定义的变量。
- 成员变量与局部变量的作用域不同,成员变量能在类的所有方法中使用,局部变量只能在声明它的方法中或声明它的语句块中使用。
Java程序设计基础笔记 • 【第8章 方法】的更多相关文章
- Java程序设计基础笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java程序设计基础作业目录(作业笔记) 第1章 Java程序设计基础笔记 • [第1章 初识Java] 第2章 Java程序 ...
- Java程序设计基础笔记 • 【第1章 初识Java】
全部章节 >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...
- Java程序设计基础笔记 • 【第10章 数组】
全部章节 >>>> 本章目录 10.1 数组概述 10.1.1 数组优势 10.1.2 Java中的数组 10.1.3 数组的分类 10.2 一维数组 10.2.1 数组的 ...
- Java程序设计基础笔记 • 【第7章 Java中的类和对象】
全部章节 >>>> 本章目录 7.1 理解类和对象 7.1.1 对象 7.1.2 抽象与类 7.1.3 类与对象的关系: 7.2 Java中的类和对象 7.2.1 类的定义 ...
- Java程序设计基础笔记 • 【第5章 循环结构】
全部章节 >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...
- Java程序设计基础笔记 • 【第6章 循环结构进阶】
全部章节 >>>> 本章目录 6.1 for循环 6.1.1 for循环的简介 6.1.2 for循环的使用 6.1.3 for循环的表达式 6.1.4 实践练习 6.2 ...
- 【Java】《Java程序设计基础教程》第一章学习
一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...
- Java程序设计基础笔记 • 【第9章 方法与参数类型】
全部章节 >>>> 本章目录 9.1 有参数有返回值的方法 9.1.1 有参数有返回值的方法的定义和调用 9.1.2 返回值的传递过程 9.1.3 方法返回值的注意事项 9 ...
- Java程序设计基础笔记 • 【第2章 变量与数据类型】
全部章节 >>>> 本章目录 2.1 变量 2.1.1 变量的概念 2.1.2 变量的使用 2.1.3 实践练习 2.2 数据类型 2.2.1 数据类型的种类 2.2.2 ...
随机推荐
- Python3的类注意事项
参考: https://www.runoob.com/python/python-object.html https://www.runoob.com/w3cnote/python-extends-i ...
- 用户名、密码、整数等常用的js正则表达式
1 用户名正则 //用户名正则,4到16位(字母,数字,下划线,减号) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //输出 true console.log(uP ...
- linux查询健康状态,如何直观的判断你的Linux系统是否健康
一提到对于查看系统运行的健康状况,可能大多数朋友考虑到的就是查看进程或者打开任务管理器,但是对于应用在真实生产环境中服务器的linux系统来说,以上两种方式都不是***效的查看方式,那么今天就给大家推 ...
- 【C/C++】编码(腾讯)
假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, - -, b, ba, ...
- 令无数程序员加班的 Log4j2 远程执行漏洞复现
前情提要 Apache 存在 Log4j 远程代码执行漏洞,将给相关企业带来哪些影响?还有哪些信息值得关注? 构建maven项目引入Log4j2 编写 pom 文件 <?xml version= ...
- Docker从入门到精通(二)——安装Docker
通过上面文章,我们大概知道了什么是Docker,但那都是文字功夫,具体想要理解,还得实操,于是这篇文章带着大家来手动安装Docker. 1.官方教程 https://docs.docker.com/e ...
- spring切面-单线程简单权限判定
spring切面简单模拟用户权限判定 需求: 游客:仅注册用户 用户:修改,注册 管理员:删除,查询,修改,注册 1,文件配置 导包 src下创建applicationContext.xml文件配置如 ...
- 【antd】form表单默认值设置
问题: 在antd的form表单的api里面有个"initialValues"可以设置默认值.但是表单没有更新 <Form name="test" for ...
- 在【自定义列】中使用M函数(Power Query 之 M 语言)
数据源: "品名"一列 目标: 提取品名中的首字符,生成新列:"品名简称" 解决方案: 在[自定义列]中使用M函数Text.Start 步骤: 打开[自定义列] ...
- 2021 .NET 开发者峰会顺利在网上落幕,线上直播回看汇总
.NET Conf China 2021 是面向开发人员的社区峰会,基于 .NET Conf 2021的活动,庆祝 .NET 6 的发布和回顾过去一年来 .NET 在中国的发展成果展示,它是由中国各地 ...