理解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();
例如:
有个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();
相关文章推荐
- 深入理解Java并发synchronized同步化的代码块不是this对象时的操作
- Java代码中new对象的过程在jvm内存中的操作
- 生成对象必须new吗,不是的,也可以不用,这样对象空间你在栈里。但java里不同
- java 使用new新建一个对象时的操作过程
- java 对象new的理解
- java中对new创建对象表达式的深入理解:
- 关于Java两种同步方法的理解(代码块级同步对象设置)
- 【Java】《Java编程思想》笔记(含练习题答案代码)-第二章 一切都是对象
- 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(4)
- 关于java的ArraryList中赋值——不是复制,需要new新的对象,才能加入
- java代码感悟——关于new对象的时机
- java对象——new对象的理解
- java代码:new 类名(){方法定义}应该如何理解?
- 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(5)
- java基本数据类型及其所对应对象的自动装箱,new,valueof操作研究
- 关于Java两种同步方法的理解(代码块级同步对象设置)
- JNI中如何在本地代码中生成和操作Java的对象和字符串,并编写应用实例
- 浅析java中new操作的理解
- 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(2)
- java之实现Cloneable接口的详解,克隆一个对象--对应有浅克隆和深克隆,概念结合代码深入理解