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 ...
随机推荐
- 乱序拼图验证的识别并还原-puzzle-captcha
一.前言 乱序拼图验证是一种较少见的验证码防御,市面上更多的是拖动滑块,被完美攻克的有不少,都在行为轨迹上下足了功夫,本文不讨论轨迹模拟范畴,就只针对拼图还原进行研究. 找一个市面比较普及的顶像乱序拼 ...
- echo -e "\033[字背景颜色;字体颜色m字符串\033[0m
格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033 ...
- Function overloading and return type
In C++ and Java, functions can not be overloaded if they differ only in the return type. For example ...
- 页面屏蔽backspace键
1 //页面加载完成 2 $(document).ready(function(){ 3 //禁止退格键 作用于Firefox.Opera 4 document.onkeypress = banBac ...
- 最小化安装centos ubuntu基础命令
# yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \ pcre-devel openssl openssl-devel zip ...
- 1.使用Lucene开发自己的搜索引擎--倒排索引基础知识
1.单词--文档矩阵 单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图3-1展示了其含义.图3-1的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系.
- Apache APISIX 的安装和配置请求转发url匹配
安装apisix套件 创建一个apisix文件夹,在apisix文件夹下再创建一个etcd_data文件夹,用来持久化etcd的数据 在apisix文件夹下 新建3个文件 config.yaml, ...
- Mysql实例 数据库优化
目录 一.前言 二.数据库表设计 三.数据库结构设计 四.数据库性能优化 硬件配置选择 数据库配置优化 系统配置优化 数据库安全优化 五.数据库架构扩展 增加缓存 主从复制与读写分离 分库 分表 分区 ...
- tableau绘制热力地图
一.右键国家地区和城市字段分别设置为地理角色-国家地区和城市 二.双击国家地区和城市添加到工作表 三.把订单id拖拽至标记卡的详细信息,标记改为密度显示,颜色设置为温度发散 四.最终整理结果如下图所示
- Tableau如何绘制多边形地图
一.把省\自治区拖拽至标记生成地图二.把销售额拖拽至标记 三.地图-地图层-冲蚀100% 四.最终结果如图所示