千峰教育2218期2022.10.24

复习

今天 5 - 6:30 1024 活动!!!
明天 2 - 6 千峰杯项目大赛,(UI 前端 Java 云计算 大数据)
分支结构
	【重点】
		业务逻辑条件分析,思路分析
	if () {}
	
	if () {} else {}
	
	if () {} else if () {}.... else {}
	
	switch () {
		case 常量1:
			处理方式1;
			break;
		case 常量2:
			处理方式2;
			break;
		case 常量3:
			处理方式3;
			break;
		case 常量4:
			处理方式4;
			break;
		default:
			未匹配其他处理方式;
			break;
	}
	
循环结构:
	解决问题
		1. 代码冗余!!
		2. 代码阅读性极差!!
		3. 代码维护性极差!!
		常用的循环结构
			while () {}
			
			do {} while ()
			for (/* 循环条件判断 */;/* 循环条件判断 */;/* 循环条件变更 */) {
		// 循环体	
			}
			
	嵌套循环

方法


1. 为什么要使用方法
循环处理复用代码问题
	1. 代码冗余,需要多次复制完整的循环,完成代码功能所需
	2. 代码阅读性极差,代码重复性,代码功能的逻辑性,都需要再次分析才可以晓得
	3. 代码维护性极差!!!

2. main 方法分析 Java 定义方法的格式和要求
public static void main(String[] args) {
    // 方法体
}
/*
public static 
	【固定格式,不要问】
void 
	当前方法的返回值类型,void 表示当前方法没有返回值。
	例如:
		中午去食堂吃饭,你付钱 10 元点油泼面,商家给你端上来一份油泼面。
        【油泼面】是返回值
      
main 
		方法名,使用/调用方法的名称。方法名要求,见名知意,动宾结合,小驼峰命名法
		例如:
		getStudentName  setStudentName
		一个方法!!调用者可以通过方法的名称 + 参数情况,就可以指定当前方法执行目标是什么。
(String[] args)
	小括号中参数运行所需的外来数据,方法参数列表
	例如:
		中午去食堂吃饭,你付钱 10 元点油泼面,商家给你端上来一份油泼面。
		【10元】 是参数
		
{}
	大括号中是方法体,方法的执行内容,目标执行的代码内容!!!!
*/
3. 比葫芦画瓢
public static 返回值类型 方法名(形式参数列表) {
	方法体
}

public static returnType methodName(parameterTypes) {
    method body;
}
4. 无参数无返回值方法
4.1 需求

方法执行,在命令行展示 中午吃油泼面

4.2 方法分析
方法分析:
	public static
		固定格式,不要问!
	返回值类型:
		当前方法【封装】的目标是展示中午吃油泼面,方法的功能中没有数据返回,有且只是打印展示!!!!‘
		【标准】
			如果方法体内容/方法执行目标,最终展示方法执行结果,当前方法没有方法体
			Sout 打印展示 != 方法的返回值
		当前方法没有返回值,使用 void 表示
	方法名:
		[要求] 见名知意,动宾结合,小驼峰命名法
		方法功能是展示中午吃什么
			showLunch 展示午饭!!!
	形式参数列表:
		当前方法执行所需的内容,不受外来数据约束,当前方法没有参数
		() 方法哪怕没有参数,也需要当前小括号。
		【注意】Java 中变量和方法的最大区别是小括号

方法声明
	public static void showLunch();
		

4.3 方法声明
public static void showLunch();
4.4 方法实现
/**
* 展示中午吃油泼面
*/
public static void showLunch() {
	// 大括号中是方法体
    System.out.println("中午吃油泼面");
}
4.5 方法调用
// main 方法是目前阶段代码执行的入口
public static void main(String[] args) {
    /*
    【调用方法】 方法是只狗,哪里需要哪里吼
    	喊名字。调用方法需要通过方法名调用。
    并且 Java 调用执行方法,需要在方法名之后加 ()
    */
    showLunch();
}
4.6 方法执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pa3omffa-1666626036881)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221024113202327.png)]

5. 有参数无返回值方法
5.1 需求

展示用户提供给当前方法的 int 类型数据

方法功能: 展示,所需展示内容是通过该用户在调用方法过程中提供的,【当前方法需要外来数据】

5.2 方法分析
分析:
	public static
		固定格式,不要问
	返回值类型:
		当前方法执行目标是展示用户提供的数据,没有数据返回值。
		【注意】控制台打印展示 不等于 方法返回值
	方法名:
		【要求】见名知意,动宾结构,小驼峰命名法
		showInData 展示 int 类型数据
	形式参数列表:
		【重点】
			当前方法执行需要外来数据支持,要求用户提供int 类型数据,在方法声明中,需要告知用户当前方法参数类型需求,注意格式:
			(int num)
				int 是当前参数的数据类型
				num 是参数的名称, 并且 num 参数变量, 可以直接在方法体内使用
				参数名称推荐带有一定的语义性,提高代码的阅读性
5.3 方法声明
public static void showIntData(int num);
5.4 方法实现
	/*
	@param 变量名 变量解释,使用概述,注意事项
	解释当期那方法所需参数的使用方式,描述方法参数情况
	*/
	/**
	* 该方法在控制台展示用户提供的 int 类型数据
	*
	* @param num 要求用户提供的 int 类型数据内容
	*/
	
	public static void showIntData(int num) {
		/*
		"用户提供的数据为:"终端直接可见内容
		+ 拼接使用的胶水,不是算术运算符,仅用于拼接后面的数据内容。要求 + 左侧必须是字符串
		num 是用方法声明对应的参数变量,方法体可以直接使用
		*/
		System.out.println("用户提供的数据为:" + num);
	}
}
5.5 方法调用
public static void main(Strin[] args) {
    /*
    【注意】
    	调用一个带有参数的方法,必须按照声明要求,给予符合
    	数据类型的实际参数内容。
    	方法声明位置是【形式参数】,调用方法给予的数据内容是【实际参数】
    	
    【生活案例】
    	今天中午吃红烧鱼,列了一个清单:鲤鱼一条【形式参数】,葱姜蒜,料酒,酱油...
    	清单知识只说明当前做菜所需的原材料有哪些,并不是一定存在的。
    	
    		外出购买,按照清单内容购买所需材料,买了一条 2.5 斤的鲤鱼!!!【实际参数】
    		
    */
    // 10 就是符合当前方法所需数据类型的实际参数
    showIntData(10);
    /*
    showIntData(10.5);
    	给予方法的实际参数数据类型,必须符合方法声明要求,如果不符合编译报错
    */
    /*
    showIntData();
    	没有给予当前方法所需参数,编译报错!!!
    */
    
    /*
    showIntData(10, 20, 30);
    	参数类型和参数个数,必须符合方法声明要求!!不能多,不能少
    */
}
5.6 方法执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLtrt9j7-1666626036883)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221024141508269.png)]

6. 无参数有返回值方法
6.1 需求

完成目标方法:调用目标方法,可以获取一个整数10

6.2 方法分析
分析:
	public static
		固定格式,不要问
	返回值类型:
		当前方法返回整数10,相当于当前方法返回值的数据类型为 int ,调用当前方法可以得到一个整数数据。
		返回值数据类型为 int
	方法名:
		【要求】 见名知意,动宾结合,小驼峰命名法
		getIntNumber
		getIntData
		
	形式参数列表:
		当前方法执行,无需任何的外来数据,无参数!!
		()
	
6.3 方法声明
public static int getIntNumber();
6.4 方法实现
/*
	@return 解释当前返回值类型,返回值含义和情况概述
	*/
	
	/**
	* 调用当前方法,可以得到一个 int 类型整数 10
	*
	* @return 返回值为 int 类型,返回的最终结果过为 10
	*/
	
	public static int getIntNumber() {
		/*
		需要方法对外返回一个结果
		关键字:
			return 返回,主要有两个作用:
				1. 终止方法运行,一旦方法运行到 return 关键字,方法执行结束。
				2. 返回 return 关键字之后的数据内容, 返回到方法调用位置。		
				【注意】
					方法声明位置已告知当前方法返回值数据类型为 int 类型
					所以要求 return 之后的数据内容必须为 int 类型数据。
		
		*/
		
		
		return 10 ;
	}
6.5 方法调用
public static void main(String[] args) {
		int num = 0;
		System.out.println("方法调用之前:" + num);
		/*
		调用 getIntNumber 方法,使用当前的返回值
		内容给予 num int 类型变量赋值操作
		*/
		num = getIntNumber();
		System.out.println("方法调用后:" + num);
	}
6.6 方法执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xzAH1dqK-1666626036887)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221024150532190.png)]

7 有参数有返回值类型
7.1 需求

方法功能描述:用户提供两个 int 类型数据,方法计算返回两个整数之和

7.2 方法分析
分析:
 public static 
 	固定格式,不要问
 返回值类型:
 	两个 int 类型数据相加之后的结果有可能超出 int 数据类型对应的数据范围
 	可以考虑当前方法的返回值为
 		long
 	或者说不考虑太多的情况下
 		int 也是 ok 的
 方法名:
 	见名知意,动宾结合,小驼峰命名法
 		getSum
 形式参数列表:
 	用户提供两个 int 类型数据,参数类型为 int,int
 	格式:
 		(int num1,int num2)
7.3 方法声明
public static long getSum(int num1,int num2);
7.4 方法实现
/**
	* 计算两个 int 类型数据之和, 返回计算之和
	*
	*@param num1 用户提供的 int 类型数据
	*@param num2 用户提供的 int 类型数据
	*@return 返回两个 int 类型数据之和,考虑到有可能两个
				int 类型相加超出 int 类型数据范围,所有
				返回类型为 long 类型
	*/
	public static long getSum(int num1, int num2) {
		return num1 + num2;
	}
7.5 方法调用
public static void main(String[] args) {
		long sum = 0L;
		
		System.out.println("方法调用之前" + sum);
		
		sum = getSum(20 , 30);
		
		System.out.println("方法调用之后" + sum);
	}
7.6 方法执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPRJ2pDv-1666626036890)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20221024160037014.png)]

8 作业
1. 整理笔记
2. 案例代码 + 注释 三遍
3. 完成作业练习题
/*
要求:
	1. 方法功能单一化!!!越单一越好!!!
	2. 不允许在方法中使用 Scanner 从键盘上获取数据!!!
	3. 所有方法必须调用通过,可以运行
	4. 方法体实现,调用通过就OK
	5. 完成每一个方法对应的文档注释,注意格式。
*/

//封装一个方法,返回两个整数里的较大那个
public class HomeWork1 {
	public static void main(String[] args) {
		int max = 0;
		max = maxOfNumber(5 , 9);
		System.out.println("较大的数字是" + max);
		
		double min = 0;
		min =  minOfNumber(3.14 , 3.1456);
		System.out.println("较小的小数是"  + min);
	}
	/**有参数有返回值
	* 封装一个方法,返回两个整数里面比较大的那个
	* @param num1 用户提供的整数类型数据 1
	* @param num2 用户提供的整数类型数据 2
	* @return 经过判断返回值较大的一个
	*/
	public static int maxOfNumber(int num1,int num2) {
		if (num1 > num2) {
			return num1;
		} else {
			return num2;
		}
	}

//封装一个方法,返回两个浮点数里的较小那个
/**有参数有返回值
	*封装一个方法,返回两个浮点数里的较小的那个
	*@param num1 用户提供的浮点数类型数据 1
	*@param num2 用户提供的浮点数类型数据 2
	*@return 经过 if () else {} 分支结构返回值小的一个
	*/
	public static double  minOfNumber(double num1,double num2) {
		if (num1 > num2) {
			return num2;
		} else {
			return num1;
		}
	}

//封装一个方法,来判断一个字符是否是大写字母
//如果是,返回true,否则返回false
public class HomeWork2 {
	public static void main(String[] args) {
		char ch ;
		ch = toMyLower('D');
		System.out.println(ch);
		
		
		
		boolean ret; 
		ret = isMyEnglish('5');
		System.out.println(ret);
	}
	/** 有参数有返回值
	* 封装一个方法,来判断一个字符是否是英文字母
	* 如果是,返回 true,否则返回false!
	* @param c 字符类型数据
	* @return if () {} else {}分支结构判断返回 true or false
	*/
	public static boolean isMyEnglish(char c ) {
		if (c < 'Z' && c > 'A' || c < 'z' && c > 'a' ) {
			return true;
		} else {
			return false;
		}
	}

//封装一个方法,来判断一个字符是否是数字字符
//如果是,返回true,否则返回false!


//封装一个方法,来判断一个字符是否是英文字母
//如果是,返回true,否则返回false! 
/**有参数有返回值
	* 封装一个方法,传入一个字符,如果是大写那么转化小写然后返回,否则保持不变返回
	* @param c 字符类型数据
	* @return if () {} else {}分支结构判断返回小写字母或者保持不变返回
	*
	*/
	public static char toMyLower(char c) {
		if (c >= 'A' && c <= 'Z') {
			return c += 32;
		} else {
			return c;
		}
	}

//封装一个方法,传入一个字符,如果是大写那么转化小写然后返回,否则保持不变返回
/**有参数有返回值
	* 封装一个方法,传入一个字符,如果是大写那么转化小写然后返回,否则保持不变返回
	* @param c 字符类型数据
	* @return if () {} else {}分支结构判断返回小写字母或者保持不变返回
	*
	*/
	public static char toMyLower(char c) {
		if (c >= 'A' && c <= 'Z') {
			return c += 32;
		} else {
			return c;
		}
	}

//封装一个方法,实现将一个正整数,倒序打印输出! 1234 4321 
/** 有参数无返回值
	* 封装一个方法,实现将一个正整数,倒序打印输出! 1234 4321 
	* @param number int 用户提供类型变量
	* for 循环 打印出倒序正整数
	*/
	public static void reverse(int number) {
		for (int i = 1 ; number >0 ; number /= 10) {
			System.out.print(number % 10);
		}
	}

//表达式(立方)	编写程序,计算该数的立方
	/**有参数有返回值
	* 表达式(立方)	编写程序,计算该数的立方
	* @param number double 用户提供类型变量
	* @return 返回一个 number 的立方
	*/
	public static double cube(double number) {
		return number * number * number;
	} 
	

//流程控制(闰年问题)	输入一个年份,判断该年份是平年还是闰年:
//注: 闰年就是第二个月有29天的那一年, 能被4整除但是不能被100整除的是闰年, 或者能被400整除的也是闰年
//如果是返回 true  不是返回false
	/** 有参数有返回值
	* 流程控制(闰年问题)	输入一个年份,判断该年份是平年还是闰年:
	* 注: 闰年就是第二个月有29天的那一年, 能被4整除但是不能被100整除的是闰年, 或者能被400整除的也是闰年
	* 如果是返回 true  不是返回false
	* @param year int 用户提供的类型数据
	* @return if () {} else {} 判断是否闰年返回 true or false 
	*/
	public static boolean isLeap(int year) {
		if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
			return true;
		} else {
			return false;
		}
	}

//表达式(正数判断)传入一个数字, 判断这个数是否是正数(是,打印YES,不是输出NO)
	/** 有参数无返回值
	* 表达式(正数判断)传入一个数字, 判断这个数是否是正数(是,打印YES,不是输出NO)
	* @param 用户提供 int 类型数据 if () {} else {} 正数调用方法打印 "Yes" , 不是正数直接打印 "No"
	* 
	*/
    int num1 = 56;
		if (num1 > 0) {
			isPositiveNumber(num1);
		} else {
			System.out.println("No");
		} 
    
	public static void isPositiveNumber(int num1) {
		System.out.println("Yes");
	} 
	
【以下内容自行分析封装方法】

1.15的阶乘
    // 作业
public class HomeWork4{
	public static void main(String[] args) {
		
		long sum;
		sum = getFactorial(15);
		System.out.println(sum);
		
	}
	/** 有参数有返回值
	* 求15的阶乘 n * (n - 1)
	* @param num long 类型用户提供num数据
	* @return for循环出 15! num返回值
	*/
	public static long getFactorial(long num) {
		for (long i = num - 1; i > 0; i--) {
			 num *= i ;
			 
		}
		return num;
		
	}
	

}
    
2. 用户输入一个数,求对应数的阶乘(考虑数据延展性)
3. 完成30位以内的斐波那契数列
	1 1 2 3 5 8 13 21 34 55 89 144 ...
4. 分解质因数
	例如:
		30 ==> 2 * 3 * 5
		90 ==> 2 * 3 * 3 * 5
		40 ==> 2 * 2 * 2 * 5
	核心:
		如果当前目标数据可以被某一个素数整除之后,需要再次确认当前素数是否可以继
		续整除目标数据
		素数作为循环变量
5. 
   *****
   *****
   *****
   *****
   *****
6.
  *
  **
  ***
  ****
  *****
7.   
      *
     ***
    *****
   *******
  *********
  • 有参数有返回值

    • 求15的阶乘 n * (n - 1)

    • @param num long 类型用户提供num数据

    • @return for循环出 15! num返回值
      */
      public static long getFactorial(long num) {
      for (long i = num - 1; i > 0; i–) {
      num *= i ;

      }
      return num;

    }

}

  1. 用户输入一个数,求对应数的阶乘(考虑数据延展性)
  2. 完成30位以内的斐波那契数列
    1 1 2 3 5 8 13 21 34 55 89 144 …
  3. 分解质因数
    例如:
    30 ==> 2 * 3 * 5
    90 ==> 2 * 3 * 3 * 5
    40 ==> 2 * 2 * 2 * 5
    核心:
    如果当前目标数据可以被某一个素数整除之后,需要再次确认当前素数是否可以继
    续整除目标数据
    素数作为循环变量





**























































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值