目录
Java中求次方的方法:
Math.pow( 底数 , 指数)
代码冗余
冗余代码可编辑性和可维护性差,我们要避免代码冗余。
java 函数/方法
是一段具备 特定功能的 高度封装 代码块
特定功能的: 指定的功能
函数的分类
内置函数 eg:Math.pow(,);sout......
自定义函数 自己声明,自己使用的函数
函数的使用:
1:函数的声明
2:函数的调用
1:函数的声明
有5要素
(1)修饰符 public(公有的) static(静态)
(2)返回值类型 void(没有返回值) 其它有返回值int...
(3)函数名 名称
(4)参数列表 不同的地方形成参数
(5)方法体 里面放置方法的所有代码
public static void main(String[] args) {
//主方法 是一个特殊的方法 作用是 作为程序的入口
2:函数的调用
直接 函数名( ) 调用
函数的封装
封装(面向对象特征之一) : 是指隐藏对象的属性和实现细节,仅对外提供公式访问方法。
参数
什么是参数?
把冗余代码的不同地方提取出来 会形成 参数
参数的分类
1:形参 形式参数 只是有个参数占位置 不代表具体内容 用在函数的声明过程中
2:实参 实际参数 实际存在的 具备含义的参数 用在函数的调用过程中
注意点:
如果声明了形参 那么 必须填写实参
参数可以有多个 多个参数间使用逗号(,) 进行分割
同时 形参 的顺序 要和 实参 一一对应
变量作用域
在某个方法中声明的变量 只能在该方法中 外部用不了
使用返回值 来解决 变量作用域导致的变量无法获取的问题
eg:sum计算完成之后 除了 直接提示之外 我·还想用一下,可以使用return。
return执行后 后续代码不会再运行
借助这个特性 也可以使用return做代码的结束
局部变量 外部无法使用,我们可以将局部变量 变为 全局。
例子:简易打地鼠游戏+封装
思想逻辑如下
1:初始化地图
2:放置老鼠
3:制作地图
4:判断是否打中 并进行积分
额外条件:循环玩,可输入特定字符重新开始。
代码实现:
import java.util.Random;
import java.util.Scanner;
public class HitMouseFn {
public static String[][] mapAry = new String[5][5];
public static int HP = 3;
public static int point = 0;
public static int mouseX;
public static int mouseY;
public static int playerX;
public static int playerY;
public static void main(String[] args) {
while (true) {
InitializeMap();
SetMouse();
MakeMap();
ShowInfo();
if (HP <= 0) {
Scanner sc = new Scanner(System.in);
System.out.println("没血了,请问是否重新开始?重新开始请按s");
String conGame = sc.next();
if (!conGame.equals("s")) {
break;
} else {
HP = 3;
point = 0;
System.out.println("加油哦,再来一次");
}
}
}
}
public static void InitializeMap() {
for (int i = 0; i < mapAry.length; i++) {
for (int j = 0; j < mapAry[i].length; j++) {
mapAry[i][j] = "O";
}
}
}
public static void SetMouse() {
Random ran = new Random();
mouseX = ran.nextInt(5);
mouseY = ran.nextInt(5);
mapAry[mouseY][mouseX] = "X";
System.out.println("老鼠的X轴坐标为:" + mouseX + ",老鼠的Y轴坐标为:" + mouseY);
}
public static void MakeMap() {
for (int i = 0; i < mapAry.length; i++) {
for (int j = 0; j < mapAry[i].length; j++) {
System.out.print(mapAry[i][j] + " ");
}
System.out.println();
}
}
public static void ShowInfo() {
Scanner sc = new Scanner(System.in);
System.out.println("请按顺序输入x和y坐标打老鼠");
playerX = sc.nextInt();
playerY = sc.nextInt();
if (mapAry[playerY][playerX].equals("X")) {
System.out.println("恭喜你,打中了");
point++;
} else {
System.out.println("很遗憾,没打中");
HP--;
}
System.out.println("当前玩家血量为" + HP + ",当前玩家积分为" + point);
}
}
结果展示:
心得体会:这个是今天的笔记还有许多不完善的地方,还需我后期多多学习,让我们一起加油吧。