ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-08-01 田龙跃 学习笔记

2022-08-01 19:00:52  阅读:108  来源: 互联网

标签:Singleton 01 08 singleton 类型 枚举 2022 泛型 public


泛型

类型擦除:(编译角度)泛型在编译后全按object类型处理(就是让程序员编写代码是遵守的“规则”:创建对象时建立了规则,以后使用我这个对象时必须遵守我的规则(编码角度))
泛型;标记类型(T-类型 K-key V-value E-element元素 ?-通配符) “暂时不确定是什么类型,用的时候再确认”(类型参数化-你把想要的类型作为参数传给我确定类型)
泛型类/接口:类名 在整个“类”中都可以使用,可以在使用这个类的时候指定类型然后类中所有的使用T类型的方法
泛型方法:返回值和参数列表,写返回值之前定义泛型<>("声明泛型"),必须配合传参(传的参数是啥类型,泛型就是啥类型)----前提 必须要有泛型声明和返回值;必须要有参数。(泛型方法多数放在非泛型类中)
泛型与继承:
1.父类是泛型类,子类不一定是
2.泛型的声明在类名之后或者在方法名中间
3.父类跟随子类确定泛型的类型
4.在继承后,子类不是泛型类,继承的东西(方法,属性)就是object类型
5.静态泛型方法必须直接声明泛型
适用场景(当类型无法确定时使用)
1.父类(接口中):定义规则,没有明确要求(由子类确定)
2.容器类:存储的数据类型由使用者确定

点击查看泛型基本使用
public interface List <T>{

//     static T [] arrays;//创建对象时才可以确定T所以T无法被静态使用(接口中默认静态常量)

    void add(T data);

    void add(Integer index,T data);//泛型作为参数

    T get(int index);//泛型作为返回值

    void change(Integer index,T data);

    void delete();

    void delete(Integer index);
}

点击查看泛型实现类
public class SuperArray<T> implements List<T>{//泛型无法创建对象,所以还是要维护Object类型
  //    父类类型由子类确定
    // 维护一个数组,要考虑的是怎么存
    private Object [] array;
点击查看指定类型和泛型方法
 SuperArray<Employee> superArray=new SuperArray<>();//创建对象时指定类型

 public <T> T getObj(T t){//一定要声明返回值类型为泛型才能叫“泛型”方法
        return t; 
    }
##枚举类:(类名要以Enum结尾) 1.把需要用到的对象声明出来 -对象名(构造参数) 2.可以有set和get方法 3.可以有构造器(私有) 枚举的静态导入(不用类名.了) import static 全类名.*/枚举对象
点击查看枚举实现单例(内部枚举)
public class Singleton {
    //声明私有化类对象
    private static Singleton singleton;
//    私有化构造函数
    private Singleton(){}
//    提供一个对外的获取单例的方法
    public static Singleton getInstance(){
         singleton = SingletonHolder.SINGLETON_HOLDER.getSingleton();
        return singleton;
    }

//    内部枚举
    private enum SingletonHolder{

        SINGLETON_HOLDER;
//        定义枚举的属性
    private final Singleton singleton;
//    定义枚举的构造方法进行初始化
    SingletonHolder(){
        singleton= new Singleton();
    }
//提过一个获取singleton属性的方法
    public Singleton getSingleton() {
        return singleton;
    }
}
//测试
    public static void main(String[] args) {
        Singleton singleton1=Singleton.getInstance();
        Singleton singleton2=Singleton.getInstance();
        System.out.println(singleton1==singleton2);
    }
}

##进程:一个程序的运行过程

标签:Singleton,01,08,singleton,类型,枚举,2022,泛型,public
来源: https://www.cnblogs.com/404tly/p/16541466.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有