一、方法(Method):功能的最小单元
1. 什么是方法?
方法是执行特定任务的代码块,可接收参数并返回结果。
定义格式:
修饰符 返回值类型 方法名(参数列表) {
// 方法体代码
return 返回值; // 若无返回值,声明为void
}
示例:比较两个数的最大值
public static int max(int a, int b) {
return a > b ? a : b;
}
2. 方法核心要点
-
调用方式:通过
方法名(参数)
调用,例如max(3, 5)
。 -
无返回值方法:使用
void
声明,例如打印三行“Hello World”:
public static void printHello() {
System.out.println("Hello World");
System.out.println("Hello World");
System.out.println("Hello World");
}
-
方法重载:同一类中,方法名相同但参数列表不同,例如:
public static void print(int num) { ... }
public static void print(String text) { ... }
二、类型转换:数据类型的灵活处理
1. 自动类型转换
-
规则:小范围类型 → 大范围类型(无需强制转换)。
-
示例:
byte a = 10;
int b = a; // 自动转换,结果为10
2. 强制类型转换
-
规则:大范围类型 → 小范围类型(需显式转换,可能丢失数据)。
-
示例:
int a = 1500;
byte b = (byte) a; // 结果为-36(二进制溢出)
3. 表达式类型提升
-
规则:表达式结果类型由最高类型决定,
byte
、short
、char
自动提升为int
。 -
示例:
byte x = 5;
int y = x + 10; // x被提升为int后运算
三、输入输出:与用户交互的关键
1. 输出数据
使用System.out.println
:
System.out.println("您的BMI是:" + bmi);
2. 输入数据(Scanner类)
三步实现键盘输入:
-
导包:
import java.util.Scanner;
-
创建对象:
Scanner sc = new Scanner(System.in);
-
读取数据:
System.out.print("请输入年龄:");
int age = sc.nextInt(); // 读取整数
System.out.print("请输入姓名:");
String name = sc.next(); // 读取字符串
四、运算符:程序逻辑的基石
1. 算术运算符
-
基本运算:
+
、-
、*
、/
、%
-
特殊规则:
-
+
与字符串结合时为连接符:"结果:" + 100
→"结果:100"
-
整数除法结果取整:
10 / 3
→3
-
2. 自增自减运算符
-
单独使用:
a++
与++a
效果相同。 -
非单独使用:
-
++a
:先自增,再使用值(先加后用) -
a++
:先使用值,再自增(先用后加)
-
示例:
int a = 10;
System.out.println(++a); // 输出11
System.out.println(a++); // 输出11(a变为12)
3. 逻辑运算符
-
短路逻辑:
&&
(一假即停)、||
(一真即停) -
非短路逻辑:
&
、|
(无论结果,执行所有条件)
示例:
if (score >= 60 && score <= 100) { ... }
4. 三元运算符
-
格式:
条件 ? 值1 : 值2
-
示例:判断成绩是否及格
String result = score >= 60 ? "及格" : "不及格";
五、综合实战:健康计算器
功能:输入身高体重,计算BMI指数。
代码实现:
import java.util.Scanner;
public class HealthCalculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入体重(kg):");
double weight = sc.nextDouble();
System.out.print("请输入身高(m):");
double height = sc.nextDouble();
double bmi = weight / (height * height);
System.out.println("您的BMI指数为:" + String.format("%.2f", bmi));
}
}