面向对象 day2
ArrayList
-
创建ArrayList: ArrayList list=new ArrayList(); 或 ArrayList list=new ArrayList<>(); 第一个可以添加不同类型的变量,第二个只能添加String类型
-
package src.arraylist; import java.util.ArrayList; public class arraylist_samples { public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); list.add("外脑"); list.add("外"); list.add("14"); System.out.println(list); // 往list的某个索引位置添加元素 list.add(0,"啊实打实"); System.out.println(list); // 根据索引获取集合中某个索引位置的值 System.out.println(list.get(0)); // 根据索引删除集合中某个元素,并返回删除元素的值 System.out.println(list.remove(0)); System.out.println(list); // 根据值来删除集合中的元素,删除成功会返回true 反之false 注意:删除的是遇到的一个匹配元素 System.out.println(list.remove("啊实打实")); System.out.println(list); System.out.println(list.remove("外")); System.out.println(list); // 根据索引来修改集合中的元素,返回的是修改前的值 System.out.println(list.set(0,"我爱你")); System.out.println(list); } }
static
-
类中前面有static修饰的变量为类变量,属于类,只有一份,会被类的所有对象共享
-
同上, 类中前面有static修饰的方法为类方法
-
工具类的可以用static创建类对象或者类方法来增加代码复用性,将构造函数私有,防止其创建对象
-
注意事项:
- 类方法中可以直接访问类变量,不可以直接访问成员变量
- 实例方法可以用this关键字,类方法不可以用this(因为使用类方法前不需要创建对象)
代码块
- 类的5大成分之一(成员变量、构造器、方法、代码块、内部类)
- 代码块分为两种:
- 静态代码块:用法:static {} 类加载时自动执行,只执行一次。作用是为类变量进行初始化赋值(用可能类变量赋值太复杂,所以放在了static{}中)
- 实例代码块:用法:{} 每次创建对象执行实例代码块,在构造器前执行,用来完成实例变量的初始化(有可能用来记录对象创建日志)
单例设计模式
-
目的:为了确保一个类只有一个对象,有许多实现方法
-
饿汉式单例(拿对象时,对象早就创建好了)方法
- 私有化类的构造器(确保外部无法创造新对象)
- 定义一个类变量为一个类对象(创建一个唯一对象)
- 定义一个类方法,返回类变量(从外部获取)
-
懒汉式单例(拿对象时才创建)
方法:- 与饿汉式的区别为刚开始时类变量为空,用来存储,调用getInstance()才创建并且保证只创建一次