美文网首页
Java 持有对象以及泛型基础

Java 持有对象以及泛型基础

作者: 成虎日记 | 来源:发表于2021-01-18 18:00 被阅读0次

1、泛型 > 泛型一般结合集合类又叫容器类(Colletion)来使用

ArrayList<String> nameList=new ArrayList<String>();

2、泛型的类型可以向上转型

public class 泛型 {

    // 泛型

    public static void main(String[] args) {

        ArrayList<Person> list=new ArrayList<Person>();

        list.add(new Teacher("s001"));

    }

}

class Person{

    String name;

    int age;

}

class Teacher extends Person{

    String ID;

    Teacher(String id){

        ID=id;

        System.out.println(ID);

    }

}

运行结果:s001

list里能容纳Person类型的对象,其中Person的子类Teacher也可以被视为Person类所以也能被容纳进去

二、  java容器类的作用是“保存对象”,可分为:

1.Colletion:Collection是最基本的集合接口,List:“有序” ,Set:"唯一", 

 2. Map:接口,一组成对的“键值对”对象,允许你使用键来查找值。

java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。

java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

所有通用的 Collection 实现类(通常通过它的一个子接口间接实现 Collection)应该提供两个“标准”构造方法:一个是 void(无参数)构造方法,用于创建空 collection;另一个是带有 Collection 类型单参数的构造方法,用于创建一个具有与其参数相同元素新的 collection。实际上,后者允许用户复制任何 collection,以生成所需实现类型的一个等效 collection

 2.1 添加一组元素

      java.util包中的Arrays和Colletions类中有很多方法可以在一个Colletion中添加一组元素。

 1.Arrays.asList()方法接受一个数组或者是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个List对象


数组转list:       //Arrays.asList()用法

        String[] name={"物流","希沃"};

        List<String> nameList=Arrays.asList(name); //使用这种方法得到的List对象nameList不能使用add()方法和remove()方法,除非确定Lis对象长度不再改变否则慎用。

        System.out.println(nameList.get(0));

        List<Integer> intList =new ArrayList<Integer>(Arrays.asList(1,2,3));  //Colletions构造器可以接受另一个Colletion用它来初始化,asList()获得一个List对象,向上转型为Colletion类型并作为ArrayList构造器的参数初始化。

        System.out.println(intList.get(1));

        intList.add(4);  //正常使用add()

        System.out.println(intList.get(3));


2.Colletions.addAll()方法接受一个Colletion对象,以及一个数组或者是一个用逗号分隔的列表,将元素添加到Colletion中

        List<String> name=new ArrayList<String>();

        System.out.println(name.size());

        Collections.addAll(name, "李四","王五");

        System.out.println(name.size());

addAll()方法将所有指定元素添加到指定 collection 中


多态

总结动态绑定(多态):动态绑定是指在“执行期间”(而非编译期间)判断所引用的实际对象类型,根据其实际的类型调用其相应的方法。所以实际当中找要调用的方法时是动态的去找的,new的是谁就找谁的方法,这就叫动态绑定。动态绑定帮助我们的程序的可扩展性达到了极致。


多态的存在有三个必要的条件:

要有继承(两个类之间存在继承关系,子类继承父类)

要有重写(在子类里面重写从父类继承下来的方法)

父类引用指向子类对象


构造方法的重载和成员方法的重载

重载规则:无论是构造方法还是成员方法重载必须有一个独一无二的参数类型列表,不能根据方法的返回值来区分方法。

如果传入的数据类型(实参)小于方法中声明的形参类型,实参就会被提升。如果是char,会被提升为int型。

public class Text {

        public static void main(String[] args) {

            int b=1;

            Person p=new Person(b);

}}

class Person{

    Person(double a){

        System.out.println(a);

    }

}<br>结果:<br>1.0

Person类的构造方法生命的形参是double类型的,而实际int b=1; Person p=new Person(b); 传给构造方法的是int型,int型会被自动提升为double类型.


foreac遍历、break和countinue以及标签和switch循环

foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。

例:输出数组的所有元素。

float f[]=new float[5];

    f[0]=1.0f;

    f[1]=2.0f;

    f[2]=3.0f;

    f[3]=4.0f;

    f[4]=5.0f;

     for(float x:f)

           System.out.println(x);

解:for(float x:f) foreach语句,定义了一个float类型的变量x,然后将数组f中的每一个元素赋给x。

foreach可用于任何Iterable对象。


switch循环:
int a=1;

 switch(a)

 {

 case 1: System.out.println("aaa123"); break;

 default:System.out.println("null");

 }<br><br>//a不能是float或者double类型,可以是int、char、String类型

相关文章

  • Java 持有对象以及泛型基础

    1、泛型 > 泛型一般结合集合类又叫容器类(Colletion)来使用 ArrayList nameList=n...

  • Java 泛型(Generic)

    本文在Java 泛型详解的基础上添加注释和增补 泛型的目的 泛型的主要目的之一就是用来指定容器要持有什么类型的对象...

  • 详解Java泛型之3——十分钟理解泛型擦除

    前面我们介绍了泛型以及通配符的基础概念,可以参考文章: 详解Java泛型之1——入门泛型必懂的知识点[https:...

  • java泛型中类型擦除的一些思考

    java泛型 java泛型介绍 java泛型的参数只可以代表类,不能代表个别对象。由于java泛型的类型参数之实际...

  • java 泛型解析

    Java 泛型 1、泛型的精髓是什么 2、泛型方法如何使用 概述: 泛型在java中具有重要地位,在面向对象编程模...

  • java泛型

    java泛型 Java 泛型的参数只可以代表类,不能代表个别对象。 由于 Java 泛型的类型参数之实际类型在编译...

  • Java 泛型

    导读 移动开发知识体系总章(Java基础、Android、Flutter) 为什么会有泛型? 泛型类 泛型方法 泛...

  • Java中的泛型/范型

    维基百科中关于Java泛型的描述 Java 泛型的参数只可以代表类,不能代表个别对象。由于Java泛型的类型参数之...

  • 《Thinking in Java》学习笔记——15章泛型(一)

    简单泛型 1.泛型的主要目的之一就是用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性。2.Java...

  • Java泛型面试题

    1.Java中的泛型是什么 ? 使用泛型的好处是什么?以及各个版本有何区别? 答:泛型是 Java SE 1.5 ...

网友评论

      本文标题:Java 持有对象以及泛型基础

      本文链接:https://www.haomeiwen.com/subject/vvmxzktx.html