Compare commits
6 Commits
main
...
wangyanshu
| Author | SHA1 | Date |
|---|---|---|
|
|
967fead38f | 4 weeks ago |
|
|
a68292f788 | 4 weeks ago |
|
|
456cd60dc0 | 4 weeks ago |
|
|
20428e78cb | 4 weeks ago |
|
|
4e1080ba4e | 4 weeks ago |
|
|
31c683359b | 4 weeks ago |
6 changed files with 39 additions and 80 deletions
@ -1,6 +0,0 @@ |
|||||
AI 协助内容: |
|
||||
1. 提供了完整可运行的 Java 代码结构与清晰中文注释; |
|
||||
2. 指导了在 IntelliJ IDEA 中新建项目、创建类、粘贴代码、运行程序的完整流程; |
|
||||
3. 解决了文件名与公共类名不一致的编译报错; |
|
||||
4. 生成了 README.md 模板与 AI 协助记录模板。 |
|
||||
我在此基础上核对了转换公式逻辑,确认功能无误后完成作业。 |
|
||||
@ -1,15 +0,0 @@ |
|||||
# 温度转换程序 - Java 版本 |
|
||||
|
|
||||
## 项目信息 |
|
||||
- **文件名**:TemperatureConverter.java |
|
||||
- **功能**:实现摄氏温度与华氏温度的双向转换。 |
|
||||
- **特性**: |
|
||||
- 支持交互式输入,格式为 `数值 单位`(例如:`36.6 C`)。 |
|
||||
- 支持单位大小写不敏感(输入 `c` 或 `f` 均可)。 |
|
||||
- 输入异常处理,提示用户规范输入。 |
|
||||
|
|
||||
## 编译与运行命令 |
|
||||
|
|
||||
### 1. 编译 (Compile) |
|
||||
确保已安装 JDK 并配置了环境变量,在项目目录下执行: |
|
||||
javac TemperatureConverter.java |
|
||||
@ -1,59 +0,0 @@ |
|||||
import java.util.Scanner; |
|
||||
|
|
||||
/** |
|
||||
* 温度转换器示例程序(Java) |
|
||||
* 支持摄氏度(C)与华氏度(F)之间互转 |
|
||||
*/ |
|
||||
public class TemperatureConverter { |
|
||||
|
|
||||
/** |
|
||||
* 将摄氏度转换为华氏度 |
|
||||
* @param c 摄氏温度 |
|
||||
* @return 对应的华氏温度 |
|
||||
*/ |
|
||||
public static double celsiusToFahrenheit(double c) { |
|
||||
return c * 9.0 / 5.0 + 32.0; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 将华氏度转换为摄氏度 |
|
||||
* @param f 华氏温度 |
|
||||
* @return 对应的摄氏温度 |
|
||||
*/ |
|
||||
public static double fahrenheitToCelsius(double f) { |
|
||||
return (f - 32.0) * 5.0 / 9.0; |
|
||||
} |
|
||||
|
|
||||
public static void main(String[] args) { |
|
||||
Scanner scanner = new Scanner(System.in); |
|
||||
|
|
||||
System.out.print("请输入要转换的温度与单位(例如 36.6 C 或 97 F):"); |
|
||||
String s = scanner.nextLine().trim(); |
|
||||
|
|
||||
if (s.isEmpty()) { |
|
||||
System.out.println("输入为空,程序退出。"); |
|
||||
scanner.close(); |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
String[] parts = s.split("\\s+"); |
|
||||
try { |
|
||||
double value = Double.parseDouble(parts[0]); |
|
||||
String unit = parts.length > 1 ? parts[1].toUpperCase() : "C"; |
|
||||
|
|
||||
if (unit.startsWith("C")) { |
|
||||
double f = celsiusToFahrenheit(value); |
|
||||
System.out.printf("%.2f °C = %.2f °F%n", value, f); |
|
||||
} else if (unit.startsWith("F")) { |
|
||||
double c = fahrenheitToCelsius(value); |
|
||||
System.out.printf("%.2f °F = %.2f °C%n", value, c); |
|
||||
} else { |
|
||||
System.out.println("未知单位,请使用 C 或 F。"); |
|
||||
} |
|
||||
} catch (Exception e) { |
|
||||
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C"); |
|
||||
} |
|
||||
|
|
||||
scanner.close(); |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,31 @@ |
|||||
|
// 定义Student类 |
||||
|
class Student { |
||||
|
// 定义属性 |
||||
|
int studentId; |
||||
|
String name; |
||||
|
double score; |
||||
|
|
||||
|
// 定义study方法 |
||||
|
void study() { |
||||
|
System.out.println("学生" + name + "(学号:" + studentId + ")正在学习,当前成绩为:" + score); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 主类 |
||||
|
public class StudentTest { |
||||
|
public static void main(String[] args) { |
||||
|
// 实例化第一个Student对象 |
||||
|
Student student1 = new Student(); |
||||
|
student1.studentId = 101; |
||||
|
student1.name = "张三"; |
||||
|
student1.score = 92.5; |
||||
|
student1.study(); // 调用study方法 |
||||
|
|
||||
|
// 实例化第二个Student对象 |
||||
|
Student student2 = new Student(); |
||||
|
student2.studentId = 102; |
||||
|
student2.name = "李四"; |
||||
|
student2.score = 88.0; |
||||
|
student2.study(); // 调用study方法 |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
为什么需要显式数据类型声明? |
||||
|
Java 是静态类型语言,编译期会进行类型检查,显式声明能提前发现类型不匹配的错误,保障程序稳定性;同时编译器可基于类型做优化,提升运行效率。而 Python 是动态类型语言,类型检查在运行时完成 |
||||
|
为什么需要 public 这类访问修饰符? |
||||
|
访问修饰符(public/private/protected)是 Java 封装特性的核心,用于控制类、属性、方法的可见范围: |
||||
|
public 表示公开可访问,允许外部调用; |
||||
|
private 表示仅类内部可见,用于隐藏内部实现,保护数据安全; |
||||
|
这种权限控制能提升代码的可维护性与安全性。 |
||||
|
通过本次 Python 到 Java 8 的代码转换实践,我深刻体会到两种面向对象语言的设计差异。Python 动态类型让代码简洁灵活,开发效率更高;而 Java 静态类型虽增加了代码量,却能在编译期提前规避类型错误,更适合大型工程化开发。public 等访问修饰符的使用,让我理解了封装的核心思想——通过权限隔离实现“高内聚、低耦合”,这是保障代码可维护性的关键。这次转换不仅让我掌握了 Java 类的定义与对象实例化,更建立了面向对象编程的工程化思维,为后续学习打下了坚实基础。 |
||||
|
Before Width: | Height: | Size: 247 KiB |
Loading…
Reference in new issue