方法:method
方法就是一段可以重复调用的代码。提升复用度,可维护性。
java中的方法类似于其他语言的函数。简单的来说:用来完成特定功能的代码
方法快捷键:psvm;pvm
语法:访问修饰符 【其他修饰符eg:static:静态修饰符】返回值类型 方法名([参数类型 参数名,参数类型 参数名.....]){
方法体
}
访问修饰符:代表方法能被访问与否的权限 public(公共权限)》protecteed》(保护权限)》默认修饰符(友元权限)>private(私有权限)
源文件中可以包含多个类,但只能有一个public包括的类
其他修饰符eg:static:静态修饰符;final 最终修饰符,可以同时出现。
返回值类型:
void:无返回值
return+返回值:有返回值时用返回值类型 一定会在最后;
类型:只有两种,基本类型和引用类型(eg:string 数组等)
方法名:
1.满足表示符规则
2.一般是纯动词或者动宾eg:获得;getXX,设置:setxx eg:setName
增加:add eg:addStu;删除:remove或del eg:removeStu 或者delStu;
改:setxx或modifyxx或·updateXX;查getXx或selectXX。复数侧重返回结果类型。
校验:checkXX chkxx eg:检验是否
一个单词最少三个字母
小驼峰规则:首字母小写。见名知义
参数列表:
1.参数类型 参数名,参数类型 参数名。。。。。
没有参数
定义方法的思考顺序:
1.遇到重复业务,重复式业务,考虑提取业务
2.pvm;生成方法架子
2.1:考虑方法名 参考如上方法名规则 考虑方法业务主题名
2.2: 先考虑参数;当有一些动态的需要提供的变量由外部传入时, 考虑增加参数。
2.3:考虑返回值:当做完业务处理后需要给调用者反馈结果时,徐添加返回值类型
eg:改为int型,后需要加return+返回值(绝对是最后一行)。
![](https://i-blog.csdnimg.cn/blog_migrate/9210a72d7975fd1c37f4d34686e5ca9f.png)
作为入口:不能有返回值,不能有参数
![](https://i-blog.csdnimg.cn/blog_migrate/d23a4385ae4878fe1730d10758b98de9.png)
参数的英文:补充
调用方法:涉及面向对象:
保证同级别调用(static 都有或者都没有),直接调用;方法名(参数值)注意参数的顺序和方法声明部分的呼应。
![](https://i-blog.csdnimg.cn/blog_migrate/0adc4bf49d5dd58172dfb445017e0293.png)
声明的英文:补充。
案例:求圆柱体的面积
package com.company.demo.demo0208;
import org.junit.Test;
public class metDemo01 {
@Test
public void method(){
double radius = 4;
double height = 5;
double cyVolume=getCylVolum(height,radius);
System.out.println(cyVolume);
}
/**
* 求圆面积
* @param radius
* @return
*/
public double getCirArea(double radius){
return 3.14*radius*radius;
}
/**
* 求圆柱体体积
* @param height:高
* @param radius:半径
* @return
*/
public double getCylVolum(double height,double radius){
return getCirArea(radius)*height;
}
}
案例2:定机票价格
![](https://i-blog.csdnimg.cn/blog_migrate/7870d84eb800372eba4b719f9c45903c.png)
package com.company.demo.demo0208;
import jdk.internal.dynalink.beans.CallerSensitiveDetector;
import org.junit.Test;
public class metDemo02 {
@Test
public void goTravel(){
double price= computerPri(500, 4, 0);
}
/**
* 计算机票价格
* @param oriPrice 原价
* @param month 月份
* @param optlevel 舱型(0:头等舱) 罗列式的int型和布尔型必须加说明解释
* @return
*/
public double computerPri( double oriPrice,int month,int optlevel ){
double price;
double discount;//机票价格
switch (month){
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
// //头等舱
// if (optlevel== 0){
// discount = 0.95;
// //经济舱
// }else{
// discount = 0.88;
//
// }
discount = (optlevel ==0)?0.95:0.88;
break;
// case 11:
// case 12:
// case 1:
// case 2:
// case 3:
// case 4:
default:
discount = (optlevel ==0)?0.7:0.6;
break;
}
price = oriPrice*discount;
return price;
}
}
案例:验证码
![](https://i-blog.csdnimg.cn/blog_migrate/91dd71a0d82547addc4b7879a2fef15c.png)
package com.company.demo.demo0208;
import org.junit.Test;
import sun.text.resources.cldr.lg.FormatData_lg;
import java.util.Random;
public class metDemo03 {
@Test
public void loginCode(){
String verCode = getCode(4);
System.out.println(verCode);
}
@Test
public void nockLogin(){
String userName = "admin";
String pwd ="111";
String code ="";
boolean loginFlg = login(userName, pwd, code);
if (loginFlg){
System.out.println("进入主页");
}else{
System.out.println("用户名或密码或验证码错误");
}
}
/**
*
* @param userName 用户名
* @param pwd 密码
* @param code 验证码
* 注意:验证时,固定值写在前面。
* @return
*/
private boolean login(String userName, String pwd, String code) {
String verCode = getCode(4);
if ("admin".equals(userName)&&"111".equals(pwd)&&verCode.equals(code)){
return true;
}else{
return false;
}
}
/**
*
* @param len 验证码的长度
* code:验证码内容
* @return
*/
public String getCode(int len){
Random random = new Random();
String code = "";
random.nextInt();//0:数字,1.大写,2,小写
for (int i = 1; i <=len ; i++) {
int eachRoute= random.nextInt(3);//0:数字,1.大写,2,小写
switch (eachRoute){
case 0:
code+=random.nextInt(10);
break;
case 1://A:65; z:65+25 65+[0,26] ASCII值转换
code+=(char)(65+random.nextInt(26));
break;
default:
code+=(char)(97+random.nextInt(26));
break;
}
}
return code;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/da70ba23412ffa08d0bf3c4771079b72.png)
案例:欢迎页面
package com.company.demo.demo0209;
import org.junit.Test;
import java.util.Scanner;
import java.util.concurrent.CountDownLatch;
/**
* 骨架思想:步骤清晰,流程简洁
* 登录界面
*/
public class demo02 {
Scanner sc = new Scanner(System.in);//全局变量
@Test
public void index(){
while (true){
System.out.println("请输入操作");
System.out.println("1.登录");
System.out.println("2.退出");
int option = sc.nextInt();
switch (option){
case 1:
login();
break;
case 2:
System.out.println("结束页面,退出");
return;
default:
System.out.println("输入错误");
continue;
}
}
}
/**
* 登录业务
*/
private void login() {//alt+enter生成
//用户名,密码,验证码
int count = 0;
while (true){
System.out.println("欢迎登录");
System.out.println("输入用户名");
String userName = sc.next();
System.out.println("输入密码");
String pwd = sc.next();
if ("admin".equals(userName)&&"123".equals(pwd)){
System.out.println("登录成功");
// 跳转到欢迎页
welcome();
}else{
System.out.println("登录失败");
count++;
}
if (count == 3){
System.out.println("输入错误,超过三次!");
return;
}
}
}
/**
* 欢迎业务
*/
private void welcome() {
while (true){
System.out.println("欢迎页面");
System.out.println("");
System.out.println("1.添加员工");
System.out.println("2.修改员工");
System.out.println("3.删除员工");
System.out.println("4.注销员工");
System.out.println("输入操作");
int option = sc.nextInt();
switch (option){
case 1:
System.out.println("添加员工");
break;
case 2:
System.out.println("修改员工");
break;
case 3:
System.out.println("删除员工");
break;
case 4:
System.out.println("注销员工");
return;
default:
System.out.println("输入有误,只能是1,2,3,4");
continue;
}
}
}
}
案例:新旧密码及密码确认
package com.company.demo.demo0209;
import org.junit.Test;
import java.util.Scanner;
import java.util.concurrent.CountDownLatch;
/**
* 骨架思想:步骤清晰,流程简洁
* 登录界面
*/
public class demo02 {
Scanner sc = new Scanner(System.in);//全局变量
@Test
public void index(){
while (true){
System.out.println("请输入操作");
System.out.println("1.登录");
System.out.println("2.退出");
int option = sc.nextInt();
switch (option){
case 1:
login();
break;
case 2:
System.out.println("结束页面,退出");
return;
default:
System.out.println("输入错误");
continue;
}
}
}
/**
* 登录业务
*/
private void login() {//alt+enter生成
//用户名,密码,验证码
int count = 0;
while (true){
System.out.println("欢迎登录");
System.out.println("输入用户名");
String userName = sc.next();
System.out.println("输入密码");
String pwd = sc.next();
if ("admin".equals(userName)&&"123".equals(pwd)){
System.out.println("登录成功");
// 跳转到欢迎页
welcome();
}else{
System.out.println("登录失败");
count++;
}
if (count == 3){
System.out.println("输入错误,超过三次!");
return;
}
}
}
/**
* 欢迎业务
*/
private void welcome() {
while (true){
System.out.println("欢迎页面");
System.out.println("");
System.out.println("1.添加员工");
System.out.println("2.修改员工");
System.out.println("3.删除员工");
System.out.println("4.注销员工");
System.out.println("输入操作");
int option = sc.nextInt();
switch (option){
case 1:
System.out.println("添加员工");
break;
case 2:
System.out.println("修改员工");
break;
case 3:
System.out.println("删除员工");
break;
case 4:
System.out.println("注销员工");
return;
default:
System.out.println("输入有误,只能是1,2,3,4");
continue;
}
}
}
}