JavaSE深度解析:从方法重载到ArrayList应用

版权申诉
0 下载量 144 浏览量 更新于2024-08-27 收藏 33KB MD 举报
"JavaSE从重载方法到ArrayList知识总结" 本文主要涵盖了JavaSE中的两个核心概念:方法重载和类与对象。首先,我们来深入理解方法重载的概念。 ### 1. 方法重载(Overloading) 方法重载是Java编程中一个重要的特性,允许在同一个类中定义多个同名方法,但要求这些方法有不同的参数列表。换句话说,方法重载的三个关键条件是: 1. **方法必须在同一类中** 2. **方法名称必须相同** 3. **参数列表必须不同**(这包括参数的个数、类型或顺序的不同) **注意事项:** 方法的返回类型不能作为判断重载的依据。以下是一个关于方法重载的示例: ```java public class Demo1 { public static void main(String[] args) { int flag = sum(5, 5); double dou = sum(5.0, 5.0); System.out.println("sum=" + flag); System.out.println("sum=" + dou); } public static int sum(int num1, int num2) { return num1 + num2; } public static double sum(double num1, double num2) { return num1 + num2; } } ``` 在这个例子中,`sum()` 方法被重载了两次,一次接受两个整数参数,另一次接受两个双精度浮点数参数。 ### 2. 类与对象 #### 2.1 类(Class) **类的重要性:** 类是Java程序的基本组成单位,是构建对象的模板。 **类的定义:** 类是对现实世界中一类具有共同属性和行为的事物的抽象。它包含了描述对象状态的属性(成员变量)和描述对象行为的方法(非静态成员方法)。 **类的组成部分:** - **属性(Attributes)**:由成员变量表示,代表对象的状态。 - **行为(Behaviors)**:由成员方法表示,定义对象可以执行的操作。 #### 2.2 对象(Object) **对象的属性:** 每个对象都有其独特的属性,这些属性有特定的值。 **对象的行为:** 表示对象能够执行的操作。 #### 2.3 类与对象的关系 类是抽象的,它定义了一组属性和行为的模板,而对象是类的具体实例,具备类所定义的属性和行为。比如,类 "Phone" 可以代表手机的抽象概念,而 "小米手机" 是 Phone 类的一个具体对象。 ```java public class Phone { String name; String user; int number; public void call() { System.out.println("打电话"); } } // 在另一个文件中创建测试类 public class PhoneDemo { public static void main(String[] args) { Phone myPhone = new Phone(); // 创建 Phone 类的对象 myPhone.name = "小米11"; // 设置对象属性 myPhone.user = "张三"; myPhone.number = 1234567890; myPhone.call(); // 调用对象方法 } } ``` 在这个例子中,`PhoneDemo` 类创建了一个 `Phone` 类的实例 `myPhone`,并设置了其属性,然后调用了 `call()` 方法。 ### 3. ArrayList 虽然在提供的信息中没有直接提及 `ArrayList`,但在JavaSE中,`ArrayList` 是 `java.util` 包中的一个重要类,它是 `List` 接口的一个实现,用于存储可变大小的有序元素集合。`ArrayList` 使用数组来存储数据,提供了丰富的操作方法,如添加、删除、查找和遍历元素。与数组相比,`ArrayList` 更具灵活性,因为它的大小可以在运行时动态调整。 总结,本文涵盖了JavaSE中的方法重载以及类和对象的基本概念,包括它们的定义、特点和关系,以及如何通过类创建对象并进行操作。对于Java初学者来说,理解和掌握这些基础概念至关重要。

static Scanner sc = new Scanner(System.in); static File file=new File("D:\\HeimaIT\\OtherData\\lycode\\javase\\takeawaysystem2\\src\\com\\itheima\\dao\\impl\\ResterauntInfo.txt"); static ArrayList<Resteraunt> resteraunts = new ArrayList<>(); static ArrayList<Menu> orderList = new ArrayList<Menu>(); static ArrayList<Menu> menus = new ArrayList<>(); OrderService orderService=new OrderServiceImpl(); static OrderDaoImpl orderDao = OrderDaoImpl.getInstance(); //单例设计,返回永远的一个resterauntDao对象 static ResterauntDaoImpl resterauntDao=new ResterauntDaoImpl(); private ResterauntDaoImpl() { } static { //加载读取orderDao层的arraylist。用来后面的餐厅加载 ArrayList<ArrayList<Menu>> arrayLists = orderDao.readOrder(); Resteraunt resteraunt = new Resteraunt("家常菜馆1", arrayLists.get(0)); Resteraunt resteraunt2 = new Resteraunt("平价菜馆2", arrayLists.get(1)); Resteraunt resteraunt3 = new Resteraunt("高贵菜馆1", arrayLists.get(2)); Collections.addAll(resteraunts, resteraunt, resteraunt2, resteraunt3); try ( ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file)); ){ objectOutputStream.writeObject(resteraunts); } catch (Exception e) { e.printStackTrace(); } } public static ResterauntDaoImpl getInstance(){ return resterauntDao; } public ArrayList<Resteraunt> readResterauntInfo() throws IOException, ClassNotFoundException { ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(file)); Object o = objectInputStream.readObject(); ArrayList<Resteraunt> o1 = (ArrayList<Resteraunt>) o; return o1; }

2023-06-10 上传