全部章节   >>>>


本章目录

8.1 方法概述

8.1.1 方法的简介

8.1.2 方法的类

8.1.3 自定义方法简介

8.1.3 自定义方法调用

8.1.4 实践练习

8.2 无参数无返回值方法

8.2.1 无参数返回值的方法的定义和调用

8.2.2 方法的调用过程

8.2.2 实践练习

8.3  有参数无返回值的方法

8.3.1 有参数无返回值的方法定义和调用

8.3.2 参数传递的过程

8.3.3 实践练习

8.4 成员变量与局部变量

8.4.1 成员变量

8.4.2 局部变量

8.4.3 实践练习

总结:


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章 方法】的更多相关文章

  1. Java程序设计基础笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java程序设计基础作业目录(作业笔记) 第1章 Java程序设计基础笔记 • [第1章 初识Java] 第2章 Java程序 ...

  2. Java程序设计基础笔记 • 【第1章 初识Java】

    全部章节   >>>> 本章目录 1.1 程序的概念及Java语言介绍 1.1.1 生活中的程序 1.1.2 计算机程序 1.1.3 算法和流程图 1.1.4 实践练习 1.2 ...

  3. Java程序设计基础笔记 • 【第10章 数组】

    全部章节   >>>> 本章目录 10.1 数组概述 10.1.1 数组优势 10.1.2 Java中的数组 10.1.3 数组的分类 10.2 一维数组 10.2.1 数组的 ...

  4. Java程序设计基础笔记 • 【第7章 Java中的类和对象】

    全部章节   >>>> 本章目录 7.1 理解类和对象 7.1.1 对象 7.1.2 抽象与类 7.1.3 类与对象的关系: 7.2 Java中的类和对象 7.2.1 类的定义 ...

  5. Java程序设计基础笔记 • 【第5章 循环结构】

    全部章节   >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...

  6. Java程序设计基础笔记 • 【第6章 循环结构进阶】

    全部章节   >>>> 本章目录 6.1 for循环 6.1.1 for循环的简介 6.1.2 for循环的使用 6.1.3 for循环的表达式 6.1.4 实践练习 6.2 ...

  7. 【Java】《Java程序设计基础教程》第一章学习

    一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...

  8. Java程序设计基础笔记 • 【第9章 方法与参数类型】

    全部章节   >>>> 本章目录 9.1 有参数有返回值的方法 9.1.1 有参数有返回值的方法的定义和调用 9.1.2 返回值的传递过程 9.1.3 方法返回值的注意事项 9 ...

  9. Java程序设计基础笔记 • 【第2章 变量与数据类型】

    全部章节   >>>> 本章目录 2.1 变量 2.1.1 变量的概念 2.1.2 变量的使用 2.1.3 实践练习 2.2 数据类型 2.2.1 数据类型的种类 2.2.2 ...

随机推荐

  1. SpringBoot让测试类飞起来的方法

    单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...

  2. java生成cron表达式

    bean类: package com.cst.klocwork.service.cron; public class TaskScheduleModel { /** * 所选作业类型: * 1 -&g ...

  3. Linux基础命令---mput上传ftp文件

    mput 使用lftp登录ftp服务器之后,可以使用put指令将文件上传到服务器.mput指令可以使用通配符,而put指令则不可以.   1.语法       mput [-c]  [-d] [-a] ...

  4. Linux磁盘与文件系统原理

    这一章主要是原理性的,介绍了Linux文件系统的运作原理.涉及到很多计算机组成和操作系统的原理性知识,这部分知识很多都忘了,在这里复习下.    我们只看本章第1,2节.--------------- ...

  5. 【编程思想】【设计模式】【行为模式Behavioral】chaining_method

    Python版 https://github.com/faif/python-patterns/blob/master/behavioral/chaining_method.py #!/usr/bin ...

  6. 如何优雅正确地通过interrupt方法中断线程

    为什么废弃Thread的stop函数? 简单来说就是stop方法中断线程太过暴力随意,且会是否线程持有的锁,会导致线程安全问题.还有可能导致存在需要被释放的资源得不到释放,引发内存泄露.所以用stop ...

  7. Docker从入门到精通(一)——初识

    1.Docker 是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容 ...

  8. 使用RabbitMQ搭建MQTT服务

    由于近期公司需要搭建一套物联网采集环境,底层设备采用MQTT协议传输数据.服务器环境为linux,考虑到现有环境已经有RabbitMQ环境,Rabbit是基于AMQP协议开发的一套高效的消息传输队列. ...

  9. 第46篇-signature_handler与result_handler

    在之前介绍为native方法设置解释执行的入口时介绍过,当Method::native_function为空时会调用InterpreterRuntime::prepare_native_call()函 ...

  10. Python中冷门但非常好用的内置函数

    Python中有许多内置函数,不像print.len那么广为人知,但它们的功能却异常强大,用好了可以大大提高代码效率,同时提升代码的简洁度,增强可阅读性 Counter collections在pyt ...