Java程序设计基础笔记 • 【第8章 方法】

本章目录

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 实践练习

总结:

  • 定义方法要确定访问修饰符、返回类型、方法名和参数列表。
  • 方法的参数分为形参与实参,形参是方法定义时在参数列表中声明的参数,实参是调用方法时传给形参的值。
  • 中的变量分为成员变量和局部变量,成员变量是类的属性,局部变量是指在方法中或方法语句块中定义的变量。
  • 成员变量与局部变量的作用域不同,成员变量能在类的所有方法中使用,局部变量只能在声明它的方法中或声明它的语句块中使用。
发布了63 篇原创文章 · 获赞 73 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44893902/article/details/104646408