Java中Set类初始化问题有哪些?

Python010

Java中Set类初始化问题有哪些?,第1张

没有第一种方式,Set是个接口,是不能够实例化(new)的,你只能实例化它的实现类,HashSet就是Set的一个实现类。\x0d\x0a第二种方式你也可以给它加,这叫泛型,就是限制这个类里只能传你指定的类型及其子类。\x0d\x0a由于Java所有对象的类是Object类,所以如果不写就默认是Object类,所有类的最顶级父类都是Object,所以传什么都可以,\x0d\x0aSet setTmp = new HashSet()和Set setTmp = new HashSet()两种方式是等价的。\x0d\x0aJava有八种基本数据类型,是不属于Object类的子类的,byte, short, int,long,char,double,float,boolean,对这八种类有他们各自的包装类,依次是Byte,Short,Integer,Long,Character,Double,Float,Boolean,这八个包装类是Object的子类,是可以作为Set的类型用的,也就是你可以写成Set 但是不能写成Set.

  1.我们都知道java是面向对象的语言, 那么类就好比是一个模板, 比如Student类, 这个类其实是一个模板, 是一个规范.

然后我们执行下面这行代码

Student xiaoMing = new Student()

就相当于我们用Student这个模板去生成了一个对象, 这个对象叫xiaoMing.

如果Student这个类有一个属性private int age当我们只是做上面new对象的动作时候, xiaoMing的age并没有被赋值, 只是初始化成了0

(数值类型的属性初始化都是0, String则是null, 例如有个字符串类型的属性name就会是null)

然后xiaoMing.setAge(10)那么这个时候xiaoMing的age属性才变成10,

所以类属性初始化指的就是在new对象的时候对各个属性赋予一个初始化的值.

2.为什么要用构造方法进行属性初始化:

这个并不是强制的, 构造方法分成无参构造和带参构造, 用构造方法对属性进行初始化只是单纯的为了方便而已.

定义并初始化方法一: String[] a = new String[3]a[0] = "a"a[1] = "b"a[2] = "c"定义并初始化方法二: String[] b = new String[]{"a","b","c"}