欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Java入门(3)--流程控制、面向对象与异常处理

Java入门(3)--流程控制、面向对象与异常处理

2025/6/7 4:05:07 来源:https://blog.csdn.net/Chen7Chan/article/details/143429146  浏览:    关键词:Java入门(3)--流程控制、面向对象与异常处理

Java入门:流程控制、面向对象与异常处理 🚀

🎯 一起深入理解Java核心概念:让编程更具逻辑性和健壮性!

在上一篇文章中,我们学习了Java的基础语法。今天,让我们继续深入,探索Java中更加强大的特性。无论你是想提升编程技能的初学者,还是追求代码质量的开发者,这些知识都是必不可少的! 💪

1. 高级流程控制 🔄

1.1 增强型for循环(forEach)

public class AdvancedLoops {public static void main(String[] args) {// 使用增强型for循环遍历数组String[] fruits = {"苹果", "香蕉", "橙子"};System.out.println("水果清单:");for (String fruit : fruits) {System.out.println("- " + fruit);}// 使用增强型for循环遍历ArrayListArrayList<Integer> numbers = new ArrayList<>();numbers.add(1);numbers.add(2);numbers.add(3);System.out.println("\n数字列表:");for (Integer num : numbers) {System.out.println("数字:" + num);}}
}

1.2 带标签的break和continue

public class LabeledLoops {public static void main(String[] args) {// 带标签的break示例outerLoop:for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (i == 1 && j == 1) {System.out.println("退出外层循环");break outerLoop;}System.out.printf("i=%d, j=%d\n", i, j);}}// 带标签的continue示例System.out.println("\n带标签的continue示例:");outerLoop:for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) {System.out.println("跳过本次外层循环");continue outerLoop;}System.out.printf("i=%d, j=%d\n", i, j);}}}
}

2. 面向对象编程精要 🎯

2.1 类的定义与继承

// 基类:动物类
public class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name = name;this.age = age;}public void makeSound() {System.out.println("动物发出声音");}
}// 子类:猫类
public class Cat extends Animal {private String color;public Cat(String name, int age, String color) {super(name, age);  // 调用父类构造器this.color = color;}@Override  // 重写父类方法public void makeSound() {System.out.println("喵喵喵~");}// 特有方法public void catchMouse() {System.out.println(color + "色的" + name + "正在捉老鼠");}
}

2.2 接口与多态

// 定义接口
interface Flyable {void fly();default void glide() {  // 默认方法System.out.println("滑翔中...");}
}interface Swimmable {void swim();
}// 实现多个接口
public class Duck extends Animal implements Flyable, Swimmable {public Duck(String name, int age) {super(name, age);}@Overridepublic void fly() {System.out.println(name + "正在飞行");}@Overridepublic void swim() {System.out.println(name + "正在游泳");}@Overridepublic void makeSound() {System.out.println("嘎嘎嘎~");}
}

2.3 抽象类与封装

// 抽象类
public abstract class Shape {protected String color;public Shape(String color) {this.color = color;}// 抽象方法public abstract double getArea();public abstract double getPerimeter();// 具体方法public void displayInfo() {System.out.println("这是一个" + color + "色的图形");System.out.println("面积:" + getArea());System.out.println("周长:" + getPerimeter());}
}// 实现抽象类
public class Circle extends Shape {private double radius;public Circle(String color, double radius) {super(color);this.radius = radius;}@Overridepublic double getArea() {return Math.PI * radius * radius;}@Overridepublic double getPerimeter() {return 2 * Math.PI * radius;}
}

3. 异常处理机制 🛡️

3.1 try-catch-finally结构

public class ExceptionHandling {public static void main(String[] args) {try {// 可能抛出异常的代码int[] numbers = {1, 2, 3};System.out.println(numbers[5]);  // 数组越界} catch (ArrayIndexOutOfBoundsException e) {// 处理特定类型的异常System.out.println("数组越界:" + e.getMessage());} catch (Exception e) {// 处理其他类型的异常System.out.println("发生异常:" + e.getMessage());} finally {// 无论是否发生异常都会执行System.out.println("清理资源...");}}
}

3.2 自定义异常

// 自定义异常类
public class InvalidAgeException extends Exception {public InvalidAgeException(String message) {super(message);}
}// 使用自定义异常
public class Person {private String name;private int age;public void setAge(int age) throws InvalidAgeException {if (age < 0 || age > 150) {throw new InvalidAgeException("年龄必须在0-150之间");}this.age = age;}public static void main(String[] args) {Person person = new Person();try {person.setAge(200);  // 尝试设置无效年龄} catch (InvalidAgeException e) {System.out.println("错误:" + e.getMessage());}}
}

3.3 try-with-resources语句

public class ResourceManagement {public static void readFile(String filename) {// 自动关闭资源try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {String line;while ((line = reader.readLine()) != null) {System.out.println(line);}} catch (IOException e) {System.out.println("读取文件失败:" + e.getMessage());}}
}

编程最佳实践 💡

  1. 面向对象编程原则:

    • 单一职责原则:一个类只负责一项功能
    • 开闭原则:对扩展开放,对修改关闭
    • 里氏替换原则:子类可以替换父类
    • 接口隔离原则:接口要精简单一
    • 依赖倒置原则:依赖抽象而不是具体实现
  2. 异常处理建议:

    • 只捕获可以处理的异常
    • 避免空catch块
    • 正确使用finally块清理资源
    • 合理使用自定义异常
  3. 代码优化技巧:

    • 适当使用接口和抽象类
    • 合理划分代码层次
    • 保持代码简洁清晰
    • 编写详细的注释

练习建议 ✍️

  1. 尝试实现一个完整的类继承体系
  2. 练习使用不同类型的异常处理
  3. 设计并实现自己的接口
  4. 编写测试用例验证代码

结语 📝

面向对象编程和异常处理是Java中非常重要的概念,掌握好它们将让你的程序更加健壮和可维护。希望这篇文章能帮助你更好地理解这些概念!

在下一篇文章中,我们将探讨Java的集合框架和泛型编程。敬请期待!

如果你觉得这篇文章有帮助,欢迎点赞转发,也期待在评论区看到你的想法和建议!👇

咱们下期见!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词