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 ...
随机推荐
- SpringBoot让测试类飞起来的方法
单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...
- java生成cron表达式
bean类: package com.cst.klocwork.service.cron; public class TaskScheduleModel { /** * 所选作业类型: * 1 -&g ...
- Linux基础命令---mput上传ftp文件
mput 使用lftp登录ftp服务器之后,可以使用put指令将文件上传到服务器.mput指令可以使用通配符,而put指令则不可以. 1.语法 mput [-c] [-d] [-a] ...
- Linux磁盘与文件系统原理
这一章主要是原理性的,介绍了Linux文件系统的运作原理.涉及到很多计算机组成和操作系统的原理性知识,这部分知识很多都忘了,在这里复习下. 我们只看本章第1,2节.--------------- ...
- 【编程思想】【设计模式】【行为模式Behavioral】chaining_method
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/chaining_method.py #!/usr/bin ...
- 如何优雅正确地通过interrupt方法中断线程
为什么废弃Thread的stop函数? 简单来说就是stop方法中断线程太过暴力随意,且会是否线程持有的锁,会导致线程安全问题.还有可能导致存在需要被释放的资源得不到释放,引发内存泄露.所以用stop ...
- Docker从入门到精通(一)——初识
1.Docker 是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容 ...
- 使用RabbitMQ搭建MQTT服务
由于近期公司需要搭建一套物联网采集环境,底层设备采用MQTT协议传输数据.服务器环境为linux,考虑到现有环境已经有RabbitMQ环境,Rabbit是基于AMQP协议开发的一套高效的消息传输队列. ...
- 第46篇-signature_handler与result_handler
在之前介绍为native方法设置解释执行的入口时介绍过,当Method::native_function为空时会调用InterpreterRuntime::prepare_native_call()函 ...
- Python中冷门但非常好用的内置函数
Python中有许多内置函数,不像print.len那么广为人知,但它们的功能却异常强大,用好了可以大大提高代码效率,同时提升代码的简洁度,增强可阅读性 Counter collections在pyt ...