方法
介绍
方法是一种用于执行特定任务或操作的代码块,代表一个功能,它可以接收数据进行处理,并返回一个处理后的结果
是一个封装了一定逻辑代码的可重用代码块
方法的定义与调用
方法的声明格式
[修饰符1 修饰符2...] 返回值类型 方法名(形式参数列表) {
代码;
return 返回值;
}
方法的调用方式
非静态方法调用:通过对象来调用,格式为对象名.方法名(实参列表)
静态方法调用:通过类名来调用,格式为类名.方法名(实参列表)
方法的返回值
无返回值
有返回值
注意事项
1、返回值类型与方法签名的一致性:返回值类型必须与方法签名中的声明一致。如果返回类型与实际返回的值类型不符,编译器会报错
2、方法可以返回null:对于引用类型,方法可以返回null,这意味着没有实际的对象返回。调用者需要处理null的可能性,以避免NullPointerException
3、返回数组或集合:方法可以返回数组或集合,返回的数组或集合可以在调用处进行遍历或处理
方法的重载
重载的概念与规则
一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了
在同一个类中,方法名一样,但是形参不一样(数据类型、顺序、个数)这些不一样都可,与返回值没有关系
重载的示例与解析
类型转换
自动类型转换
介绍
类型范围小的变量,可以直接赋值给类型范围大的变量
执行原理
基本数据类型间的自动转换
为什么要进行类型转换
存在不同类型的变量赋值给其他类型的变量
表达式的自动类型提升
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算
注意事项
表达式的最终结果类型由表达式中的最高类型决定
在表达式中,byte、short、char 是直接转换成int类型参与运算的
强制类型转换
什么是强制类型转换,为什么要进行强制类型转换?
类型范围大的变量, 不可以直接赋值给类型范围小的变量,会报错,需要强制类型转换过去
基本数据类型间的强制转换
注意事项
强制类型转换可能造成数据(丢失)溢出;浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
案例
/*
// 练习:做一个健康计算器
*/
public class Test05 {
public static void main(String[] args) {
// // 1.实例控制台输入对象Scanner
// Scanner scanner = new Scanner(System.in);
//
// // 2.提示用户输入:“请输入您的年龄(1~120):”,并获取输入的年龄
// System.out.print("请输入您的年龄:");
// int age = scanner.nextInt();
//
// // 3.提示用户输入:“请输入您的性别(男或女):”,并获取输入的性别
// System.out.print("请输入您的性别:");
// String gender = scanner.next();
//
// // 4.提示用户输入:“请输入您的体重(KG):”,并获取输入的体重
// System.out.print("请输入您的体重:");
// double weight = scanner.nextDouble();
//
// // 5.提示用户输入:“请输入您的身高(M):”,并获取输入的身高
// System.out.print("请输入您的身高:");
// double height = scanner.nextDouble();
//
// // 6.计算BMI,公式 = 体重 / (身高 * 身高)
// double bmi = weight / (height * height);
double bmi = 30;
System.out.print("您的BMI为:" + bmi + ","); // 将println改为print
if (bmi < 18.5) {
System.out.println("体重过低");
} else if (bmi >= 18.5 && bmi <= 24.9) {
System.out.println("正常范围内");
} else if (bmi > 24.9 && bmi <= 29.9) {
System.out.println("超重");
} else {
System.out.println("肥胖");
}
// 7.计算BMR
// 男计算公式 = 88.362+(13.397 ×体重[kg]) +(4.799×身高[cm])-(5.677 × 年龄[岁])
// 女计算公式 = 447.593 + (9.247 × 体重[kg]) + (3.098 × 身高[cm]) -(4.330 × 年龄[岁])
// 将身高单位从m转换为cm
// height *= 100;
// double bmr = gender.equals("男") ?
// 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age) :
// 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
// System.out.println("您的BMR为:" + bmr);
}
}
输入输出
调用java封装好的输入输出API(Scanner)
输入
程序读取用户键盘输入的数据
输出
把程序中的数据展示出来
// 1.实例Scanner对象
Scanner scanner = new Scanner(System.in);
// 2.提示用户输入年龄,并获取用户输入的年龄
// 提示
System.out.print("请输入您的年龄:"); // println输出后会在后面换行(\n)print是不用换行
// 获取用户输入
int age = scanner.nextInt(); // 会阻塞等待到用户输入完成
// 打印
System.out.println("您输入的年龄为:" + age);
// 3.提示用户输入姓名,并获取用户输入的姓名
// 提示
System.out.print("请输入您的姓名:");
// 获取用户输入
String name = scanner.next();
// 打印
System.out.println("您输入的姓名为:" + name);