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 ...
随机推荐
- 案例 stm32单片机,adc的双通道+dma 内部温度
可以这样理解 先配置adc :有几个通道就配置几个通道. 然后配置dma,dma是针对adc的,而不是针对通道的. 一开始我以为一个adc通道对应一个dma通道.(这里是错的,其实是我想复杂了) 一个 ...
- PLSQL导出oracle表结构和数据
1.导出表结构和数据 方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出 ...
- 快速挂起VIM以及调出被挂起的VIM的方法
vim中开了多窗口后有时需要临时切出去执行shell指令,查看结果,在vim中用%很不方便查看结果,要切出去又要逐个小窗口:q,非常麻烦. 上网一查竟然有挂起的方法: 挂起:ctrl-z 调出:fg ...
- Linux常用命令之文件权限管理
Linux文件权限管理1.改变文件或目录的权限:chmod命令详解命令名称:chmod命令所在路径:/bin/chmod执行权限:所有用户语法:chmod [{ugoa}{+-=}{rwx}] [文件 ...
- 搭建内网Yum源
搭建内网yum源 阅读(2,238) 一:因内网服务器 众多,当统一安装一些比较大的rpm的时候全部从外网下载就比较慢,而且还占用了一定的出口流量,因此在内网部署了一台yum服务器,将阿里云的epel ...
- 【Service】【Database】【MySQL】基础
1. 概念 1.1. 作者:Unireg 1.2. MySQL AB --> MySQL Solaris:二进制版本: 1.3. 官方网站: MySQL: www.mysql.com Maria ...
- 前端两大框架 vue 和 react 的区别
1. 设计思想 vue: vue的官网介绍说vue是一种渐进式框架,采用自底向上增量开发的设计: react: 采用函数式编程,推崇纯组件,数据不可变,单向数据流: 2. 编写语法 vue: 采用单文 ...
- 【前端】关于DOM节点
参考这个: https://juejin.cn/post/6844903849614901261 DOM树的根节点是document对象 DOM节点类型:HTML元素节点(element nodes) ...
- 玩转 Mockjs,前端也能跑的很溜
mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查.在生成数据时,我们就需要能够熟练使用 mock.js 的语法. Mockjs 的语法规范包括两部分:数据模板定 ...
- SharedWorker实现多标签页联动计时器
web workers对于每个前端开发者并不陌生,在mdn中的定义:Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法.线程可以执行任务而不干扰用户界面.此外,他们可以使用XML ...