Java基础Day5

Java基础第五天

方法

方法概述

假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹(植物大战僵尸)。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。

方法定义及格式

简单的说:方法就是完成特定功能的代码块

在很多语言里面都有函数的定义

函数在Java中被称为方法

格式:

  修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {

函数体;

return 返回值;

}

 

方法格式的解释说明

修饰符 比较多,后面会详细介绍。目前public static

返回值类型 用于限定返回值的数据类型

方法名 一个名称,为了方便我们调用方法

参数类型 限定调用方法时传入参数的数据类型

参数名 是一个变量,接收调用方法时传入的参数

方法体 完成功能的代码

return 结束方法以及返回方法指定类型的值

返回值 程序被return带回的结果,返回给调用者

方法案例

如何写一个方法呢?两个明确

返回值类型 明确功能结果的数据类型

参数列表 明确有几个参数,以及参数的类型

按照格式和两个明确来完成如下功能

求两个数据之和的案例

代码:

/*

方法:完成特定功能的代码块。

注意:在很多语言里面有函数的定义,而在Java中函数被称为方法。

方法格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {

方法体语句;

return 返回值;

}

详细解释:

修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。

返回值类型:就是功能结果的数据类型。

方法名:符合命名规则即可。方便我们的调用。

参数:

实际参数:就是实际参与运算的。

形式参数;就是方法定义上的,用于接收实际参数的。

参数类型:就是参数的数据类型

参数名:就是变量名

方法体语句:就是完成功能的代码。

return:结束方法的。

返回值:就是功能的结果,由return带给调用者。

要想写好一个方法,就必须明确两个东西:

A:返回值类型

结果的数据类型

B:参数列表

你要传递几个参数,以及每个参数的数据类型

需求:求两个数据之和的案例

方法的执行特点:

不调用,不执行。

如何调用呢?(有明确返回值的调用)

A:单独调用,一般来说没有意义,所以不推荐。

B:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。

C:赋值调用,推荐方案。

案例一:

class FunctionDemo
{
	public static void main(String[] args) 
	{
		//System.out.println("Hello World!");
		for(int x = 0;x < 4; x++){
			for(int y = 0; y < 5; y++){
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("-------------");
		for(int x = 0;x < 6; x++){
			for(int y = 0; y < 7; y++){
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("--------------");
		printXing(3,4);
		System.out.println("--------------");
		printXing(6,7);
		System.out.println("--------------");
		printXing(8,9);
	}
	public static void printXing(int m,int n)
	{
		for(int x = 0;x < m; x++){
			for(int y = 0; y < n; y++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}


案例二:键盘录入三个数据,返回三个数中的较大值

import java.util.Scanner;
class Test1 
{
	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = scanner.nextInt();
		System.out.println("请输入第二个数");
		int b = scanner.nextInt();
		System.out.println("请输入第三个数");
		int c = scanner.nextInt();
		int max = compare(a,b,c);
		System.out.println("最大的数字="+max);

	}
	public static int compare(int a,int b,int c)
	{
		int max;
		if(a > b){
			if(a > c){
				max = a;
			}else{
					max = c;
				}
		}else{
			if(b > c){
				max = b;
			}else{
				max = c;
			}
		}
		return max;
	}
}

键盘录入两个数据,比较两个数是否相等

import java.util.Scanner;
class Test2 
{
	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = scanner.nextInt();
		System.out.println("请输入第二个数");
		int b = scanner.nextInt();
		boolean result = compare(a,b);
		System.out.println("输出的结果为"+result);
	}
	public static boolean compare(int a,int b)
	{
		boolean c = (a == b)?true:false;
		return c;
	}
}

方法注意事项

方法不调用不执行

方法与方法是平级关系,不能嵌套定义

方法定义的时候参数之间用逗号隔开

方法调用的时候不用在传递数据类型

如果方法有明确的返回值,一定要有return带回一个值

没有明确返回值的函数调用:

其实就是void类型方法的调用

只能单独调用

void类型返回值的方法调用:

单独调用

输出调用(错误)

赋值调用(错误)

返回值为void类型的方法练习

键盘录入行数和列数,输出对应的星形

import java.util.Scanner;
class Test3 
{
	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入行数");
		int a = scanner.nextInt();
		System.out.println("请输入列数");
		int b = scanner.nextInt();
		print(a,b);
	}
	public static void print(int a,int b)
	{
		for(int i = 0;i < a; i++){
			for(int j = 0; j < b; j++){
				System.out.print("* ");
			}
			System.out.println();
		}
	}
}

键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表

import java.util.Scanner;
class Test4 
{
	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		//System.out.println("Hello World!");
		int n = scanner.nextInt();
		Jiu(n);
	}
	public static void Jiu(int n)
	{
		for(int i = 1;i <= n; i++){
			for(int j = 1;j <= i ; j++){
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println();
		}
	}
}

方法重载

方法重载概述

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

方法重载特点

与返回值类型无关,只看方法名和参数列表

在调用时,虚拟机通过参数列表的不同来区分同名方法

需求:我要求数的和

我们的需求不断的发生改变,我们就对应的提供了多个求和的方法。

但是呢,他们的名字是不一样的。

而我们又要求方法命名做到:见名知意。

但是,很明显,现在没有做到。

那么,肿么办呢?

针对这种情况:方法的功能相同,参数列表不同的情况,为了见名知意,Java允许它们起一样的名字。

其实,这种情况有一个专业名词:方法重载。

方法重载:

在同一个类中,方法名相同,参数列表不同。与返回值类型无关。

参数列表不同:

A:参数个数不同

B:参数类型不同

class FunctionDemo4 {
	public static void main(String[] args) {

		System.out.println(sum(10,20));
		System.out.println(sum(10,20,30));
		System.out.println(sum(10,20,30,40));

		System.out.println(sum(10.5f,20f));
	}

	public static int sum(int a,int b) {
		System.out.println("int");
		return a + b;
	}

	public static int sum(int a,int b,int c) {
		return a + b + c;
	}

	public static int sum(int a,int b,int c,int d) {
		return a + b + c + d;
	}

	public static float sum(float a,float b) {
		System.out.println("float");
		return a + b;
	}
}

比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试

class FunctionTest6 {
	public static void main(String[] args) {
		//测试
		byte b1 = 3;
		byte b2 = 4;
		System.out.println("byte:"+compare(b1,b2));

		//测试
		short s1 = 5;
		short s2 = 5;
		System.out.println("short:"+compare(s1,s2));

	}

	//byte类型
	public static boolean compare(byte a,byte b) {
		System.out.println("byte");
		return a == b;
	}

	//short类型
	public static boolean compare(short a,short b) {
		System.out.println("short");
		return a == b;
	}

	//int类型
	public static boolean compare(int a,int b) {
		System.out.println("int");
		return a == b;
	}

	//long类型
	public static boolean compare(long a,long b) {
		System.out.println("long");
		return a == b;
	}
}




时间: 2024-10-13 14:42:20

Java基础Day5的相关文章

-Java基础-Java介绍

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. java的介绍 1.1java简介 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言. 它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机.电话.闹钟.烤面包机等家用电器的控制和通讯问题.由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划.就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机

第3篇-JAVA基础

第3篇-JAVA基础 每篇一句 :目标是给梦想一个期限,行动与坚持就是实现梦想的过程 初学心得: 遇到困难或问题,它不是休止符,而是引向你如何解决问题的标识 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-26| JAVA基础 Ⅱ] 上篇回顾 上篇文章中我们学习了JAVA底层的运行机制与深入剖析以及解释其中JAVA基础代码的含义 本篇文章将JAVA基础Ⅱ全面剖析解释,因为JAVA基础非常重要,务必要牢记知识点!!! 1.JAVA基础语法格式 JAVA采用unicode编码 1

Java基础学习第五天——方法与数组

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.02.24 lutianfei none 第三章Java基础语法 方法 方法就是完成特定功能的代码块,即函数. 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2-) { 函数体; return 返回值; } 详细解释: 修饰符,目前就用public static,后详解. 返回值类型:就是功能结果的数据类型. 方法名:符合命名规则即可,方便我们的调用. 参数: 实际参数:就是实际参与运算的.

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

java基础 计算今天距本月最后一天还剩多少天

Calendar  c = new GregorianCalendar();   //GregorianCalendar 是Calendar的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统. GredorianCalendar 是一种混合日历,可由调用者通过调用setGregorianChange()来更改起始日期. Calendar c = new  Calendar.getInstance(TimeZone.getTimeZone("GMT+08:OO"));  //

Java基础语法

Java的基础语法中包含字符集.标识符和关键字.变量和常量.语句.注释.运算符和表达式这些基本要素. 一.关键字 编程语言都有一些保留的单词,用于定义该语言,这些单词对于编译器有特殊含义,不能作为标识符使用: Java中的true.false.null这三个保留字,不能作为标识符使用,对于编译器有特殊含义: main是一个用于描述Java程序开始方法的特殊名称,它不是一个关键字: abstract 抽象 boolean 逻辑运算: 布尔 break 打破: 断开 byte 字节: case 例,

JAVA基础——重新认识String字符串

深入剖析Java之String字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串. 在 Java 中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入所有的程序. 创建 String 对象有三种方法 String s1="我是字符串1"; String s2=new String();//创建一个空的字符串对象 String s3=new String("我是字符串2&q

第2篇-JAVA基础

第2篇-JAVA基础 每篇一句 :无论处在任何领域中,即使是在小的事情,都要让每一天有所价值 初学心得: 在学习的过程中,错误是很宝贵的,它一笔"财富",更是一种"价值" (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-24 | JAVA基础] JAVA基础 回顾 在上一篇文章中,最后提到两个问题, 相信读者们已经提前超额完成了"任务" 下面跟着笔者的思路,深入掌握JAVA底层的运行机制 JAVA运行机制 (重中之重) JAV

第4篇-JAVA基础

第4篇-JAVA基础 每篇一句 :世界上本没有完美,但是我们从未放弃追求完美 初学心得: 乐于挥霍的时间,都不能算作浪费 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-01| JAVA基础 Ⅳ] 程序运行流程 (1) 顺序结构 (2) 分支结构 (3) 循环结构 (4) break 与 continue关键字 (5) 数组 (6) 方法 1.顺序结构 如果代码里没有流程控制,程序是至上而下一行一行执行的 一条语句执行完之后继续执行下一条语句,直到程序的最后 2.分支结构 顺