面向对象(下)

1.final关键字(不可二次赋值)

一.单例:

package Test;
public class Test {
    public static void main(String[] args) {
        System.out.println(Student.getStudent());
        System.out.println(Student.getStudent());
    }
}
class Student{
    private static Student t;
    private Student() {                //构造器私有化
    }
    public static Student getStudent() {
        if (t == null) {
            t = new Student();
        }
        return t;
    }
}

 运行结果:

Test.Student@3b07d329
Test.Student@3b07d329

parse:解析,剖析

二.抽象类abstract

1.抽象类和抽象方法

(有抽象方法的类只能被定义为抽象类,抽象类里可以没有抽象方法。)

规则:

抽象类和必须使用abstract修饰,抽象方法也是,抽象方法不能有方法体。

抽象类不能被实例化,无法使用new关键字来调用抽象类的抽象类的构造器创建抽象类的实例

......

2.抽象类的应用

抽象类在实际项目中有许多应用场景,例如:

  1. 定义通用的模板类,让子类实现特定的行为。

  2. 将公共的方法和属性提取到抽象类中,避免重复编写代码。

  3. 强制子类实现特定的方法,确保代码的一致性和可靠性。

三.接口interface

接口是一种规范。

接口里面不能包含构造器和初始化块定义。

接口里的成员变量只能是静态常量,接口里的方法只能是抽象方法,类方法,默认方法或私有方法。

四.Java集合

1.Collection

Collection接口是List,Set,Queue接口的父接口(单列集合)

        List:

  • 有序集合(存取顺序)
  • 元素可以重复
  • 有索引

        set:

  • 无序集合元素
  • 不可重复(集合)
  • 无索引

HashSet类:利用Hash算法来储存集合中的元素。

特点:

  • 无序,
  • 不是同步的,如果多线程同时访问一个HashSet,必须使用代码来满足其同步性。
  • 集合元素可以时null

判断两个元素相等时,是两个对象通过equals()方法比较相等,并且HashCode()方法返回只也相等

        遍历方式:(因为set集合无索引,所以使用更加通用的遍历方式)

不要在遍历中更改集合中的值

迭代器遍历(集合专用遍历方式):

        Iterator:

    Collection <String> coll = new ArrayList<>();
        coll.add("111");
        coll.add("222");
        coll.add("333");
        coll.add("444");

        //2.迭代器获取对象
        Iterator<String> iterator = coll.iterator();
        while(iterator.hasNext()){
            String t = iterator.next();
            System.out.println(t);
        }
    }

        增强for遍历

for (String s : coll) {
            System.out.println(s);
        }

这其中的s是个第三方变量

        lambda表达式

 coll.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });


  coll.forEach(s -> System.out.println(s));

2.Map集合(双例集合)

    public static void main(String[] args) {
        Map<String, String> map =new HashMap<>();
        map.put("aaa","AAA");
        map.put("bbb","BBB");
        map.put("ccc","CCC");
        map.put("ddd","DDD");
        map.put("eee","EEE");
        
        Set<String> keys = map.keySet();
        for (String s : keys) {
            String value = map.get(s);
            System.out.println(s + "= " + value);
            
        }
        

    }

遍历map,key是一个set集合,通过key查找value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值