01方法
1.方法详解
方法是一种用于执行特定任务或操作的代码块,代表一个功能,它可以接受数据进行处理,并返回一个处理后的结果。

方法的完整定义各位为:
修饰符 返回类型 方法名称(形参列表){
方法体代码(需要执行的功能代码)
return 返回值;
}
理解形参,最好把它和实参 (Actual Arguments) 区分开来:
-
形参 (Formal Parameters):在方法定义时声明的,用于接收数据的占位符。它们是局部变量,只在方法内部有效。
-
实参 (Actual Arguments):在方法调用时传递给方法的具体值或变量。
//写一个比较两数大小的方法
//public static为修饰符 int为返回值类型 max为方法名 int a,int b为形参列表
public static int max(int a, int b) {
int max; //方法体代码
if(a > b){ //方法体代码
max = a; //方法体代码
}//方法体代码
else { //方法体代码
max = b; //方法体代码
} //方法体代码
return max; //返回值
}
方法的返回值也可以为viod 表明无需返回值。
2.方法的其他注意事项
2.1方法可以重载
一个类中,出现多个方法名称相同,而形参列表不同,这就叫做方法的重载。这是一种很优雅的语言设计,可以满足程序员在面对一种方法操作类型,不同数据类型的操作需求,而不会招致代码逻辑的混乱。
import java.util.Scanner;
public class methodOverloading {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
double b = sc.nextDouble();
sum((int)a,(int)b);
sum(a,b);
}
public static void sum(int a, int b) {
int sum = a + b;
System.out.println(sum);
}
public static void sum(double a, double b) {
double sum = a + b;
System.out.println(sum);
}
}
例如以上代码就是一个很好的方法重载的例子,可以通过只调用一个方法名,就完成对数据的两个结果加和。
2.2无返回值的方法中可以直接通过单独的return;立即结束当前方法的执行。
import java.util.Scanner;
public class returnEndMethod {
public static void main(String[] args) {
int a = 2;
int b = 10;
max(a , b);
System.out.println("If there is no max, then return break the method.");
}
public static void max(int a, int b) {
if (a > b){
int max = a;
System.out.println("Max is " + a);
}
return;
}
}
02数据类型转换
1.自动类型转换
范围小的数据类型单位在赋值时可以自动赋值给大的数据类型单位

其原理如下,例如将byte类型数据赋值给int类型数据,如下所示:

将有效位数直接放在最后,之所以可以自动转换,是因为可以保证完全保留空间较小的数据类型的有效位数。
2.强制类型转换
数据类型范围大的变量,不可用直接赋值给类型范围小的变量,会报错,需要强制类型转换过去,其语法如下:
数据类型 变量2 = (数据类型)变量1、数据
int a = 20;
byte b = (byte)a; //强制类型转换
System.out.printLn(b); //20

3.表达式的自动类型提升
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。

例如一个byte数据,与int数据,double数据类型同时进行运算,则其三者都被转换为double数据类型进行运行,结果也为double数据类型。
03输入输出

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String s = sc.next();
04运算符
1.算数运算符、+符号做连接符
| 符号 | 作用 | 说明 |
| + | 加 |
参考一年级课本 部分情况可坐连接符 (如 |
| - | 减 |
参考一年级课本 (如 |
| * | 乘 |
参考一年级课本 (如 |
| / | 除 |
在Java中 两个整数相除的结果还是整数 (如 10 |
| % | 取余 |
获取两个数做除法的余数 (如 |
特殊用法:
+符号可作为字符串连接符(如"Hello" + "World"结果为"HelloWorld")- 当数字与字符串相加时,数字会被隐式转换为字符串(如
5 + "3"结果为"53")
2.自增自减运算符
自增自减运算符包括:
++自增运算符(如i++或++i)--自减运算符(如i--或--i)
使用区别:
- 前缀形式(如
++i):先自增/自减,后返回值 - 后缀形式(如
i++):先返回值,后自增/自减
int a = 5;
int b = a++; // b = 5, a = 6
int c = ++a; // a = 7, c = 7
int a = 5;
int b = a++; // b = 5, a = 6
int c = ++a; // a = 7, c = 7
3.赋值运算符
基本赋值运算符:
=简单赋值(如a = 5)
复合赋值运算符:
+=(如a += 3等价于a = a + 3)-=(如a -= 3等价于a = a - 3)*=(如a *= 3等价于a = a * 3)/=(如a /= 3等价于a = a / 3)%=(如a %= 3等价于a = a % 3)
4.关系运算符、三元运算符
关系运算符:
>大于(如5 > 3返回true)<小于(如5 < 3返回false)>=大于等于<=小于等于==等于(比较值)!=不等于
三元运算符:
- 语法:
条件 ? 表达式1 : 表达式2 - 示例:
int max = (a > b) ? a : b; - 判断逻辑为是否a > b,如果是则将a赋值给max,如果不是则将b赋值给max。
5.逻辑运算符
基本逻辑运算符:
&&逻辑与(两个条件都为真)||逻辑或(至少一个条件为真)!逻辑非(取反)
短路特性:
- 对于
&&,如果第一个条件为假,不再计算第二个条件 - 对于
||,如果第一个条件为真,不再计算第二个条件
位运算符(扩展):
&按位与|按位或^按位异或~按位取反<<左移位>>右移位>>>无符号右移位
05综合案例

import java.util.Scanner;
public class healthCalculator {
public static void main(String[] args) {
System.out.println("Please enter your gender(male/female):");
Scanner sc = new Scanner(System.in);
String gender = sc.next();
System.out.println("Please enter your age:");
int age = sc.nextInt();
System.out.println("Please enter your body weight(kg):");
double weight = sc.nextDouble();
System.out.println("Please enter your height(m):");
double height = sc.nextDouble();
if("male".equals(gender)){
male(weight ,height, age);
}
else {
female(weight ,height, age);
}
}
public static void male(double weight , double height, int age) {
double bmi = weight / (height * height);
double bmr = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
if(bmi < 18.5){
System.out.println("BMI = " + bmi + "body weight low");
} else if (18.5 <= bmi && bmi <= 24.9) {
System.out.println("BMI = " + bmi + "body weight normal");
} else if (25 <= bmi && bmi <= 29.9) {
System.out.println("BMI = " + bmi + "overweight");
} else if (bmi >= 30) {
System.out.println("BMI = " + bmi + "fat pig");
}
//space
if(bmr >=1500 && bmr <=2500){
System.out.println("BMR = " + bmr + "bmr normal");
}else System.out.println("BMR = " + bmr + "bmr unnormal");
}
public static void female(double weight , double height, int age) {
double bmi = weight / (height * height);
double bmr = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
if(bmi < 18.5){
System.out.println("BMI = " + bmi + "body weight low");
} else if (18.5 <= bmi && bmi <= 24.9) {
System.out.println("BMI = " + bmi + "body weight normal");
} else if (25 <= bmi && bmi <= 29.9) {
System.out.println("BMI = " + bmi + "overweight");
} else if (bmi >= 30) {
System.out.println("BMI = " + bmi + "fat pig");
}
//space
if(bmr >=1200 && bmr <=2000){
System.out.println("BMR = " + bmr + "bmr normal");
}else System.out.println("BMR = " + bmr + "bmr unnormal");
}
}

2372

被折叠的 条评论
为什么被折叠?



