您的位置:首页 > 编程语言 > Java开发

理解User test=new User();Java代码中的等式,都是对类的对象的操作,即等式右侧都是对象而不是类

2016-08-29 15:53 351 查看
Java代码中的等式,都是对类的对象的操作,即等式左侧和右侧都是对象而不是类,并且如果左侧和右侧两个对象所属的类不一致,还要进行强制转换,否则会报错(但是接口类除外,不用进行强制转换)。

例如:

有个User类,表示用户信息表。

有如下等式:

User test=new User();//等式右侧new User();其实就是初始化(或叫生成)一个对象,并命名为test。

User test2=new User(“admin”);//等式右侧new User(“admin”);其实就是根据传入参数“admin”初始化(或叫生成)一个对象,并命名为test2。

另外有一个Organ类,表示机构信息表。

User类和Organ类是两个不相关的,完全不同的类,也没有继承关系。

User test2=new Organ();//这样编译会报错的,因为new Organ()初始化了一个对象,但是这个对象是属于Organ类的。

要编译不报错,就要进行强制转换:

User test2=(User)new Organ();//这样编译是不会报错的,虽然这样没有什么意义。

但是接口类除外:



Map test=new HashMap();

不需要进行强制转换。

=================另一个收获=================

综上所述,还有一个收获,就是接口类的对象初始化,有两种方式:

1)通过new 接口类的实现类,例如:Map test=new HashMap();

2)通过强制转换实现,例如:Map test=(Map)new User();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: