java 对象new的理解
来源:互联网 发布:免费行业报告下载知乎 编辑:程序博客网 时间:2024/05/18 00:57
java作为一种面向对象编程的语言,至今非常火热,我学习了一段时间发现自己并没有什么进步,在这里记录一些学习的东西;
java的new过程:
Pet pet = new Pet();
上面的代码产生了一个新的对象pet,其中pet为引用,存储的内存中实例对象的地址,左侧的Pet说明对象的类型,右侧的new过程则是分配内存空间,并产生对象实例。
看过程就是简单的赋值: String pet = “pet_Object”;
将右侧的值赋给左侧的类型为String的引用pet;
这样的话,不难以理解,右侧是一个完整的实例,通过Pet()构造出来的完整对象,Pet pet = new Pet();将右侧的对象赋给左侧,在这个赋值的过程中,左侧的类型对这个实例进行验证,这个验证过程有三种情况:
1)右侧的实例和左侧的类不符,并且不存在任何关系,那么JVM就会报错;
2)右侧的实例和左侧的类符合,编译成功;
3)右侧的实例和左侧的类并不符合,但是右侧的实例所对应的类是左侧类型的子类,这时候就会发生“向上转型”的情况,编译成功,虽然这时候子类中的特定方法不能使用,但是在对pet实例进行“向下转型”,就可以调用子类中的特殊方法;
上面的过程中依然有很多的疑问:1、这个new的过程中产生的实例在对象中是如何存储的;2、方法体的存储问题;
网上关于new的资料很多,很多都说,等号左侧的类是模板,经过我的验证,并非如此;
eg:
public static void main(String[] args){ String str = "cat"; Pet cat = new Cat(str); cat.eat(); Cat cat1=(Cat)cat; System.out.println(">>>>>>"+cat1.getCat());}结果:This is Cat's constructed functionThis is Cat,it's the children>>>>>>cat
上面的代码中,Pet类中并没有任何的属性值,但是依旧保存了字符串,也就是说这个是先有的实例,然后实例赋值给了cat;
阅读全文
0 0
- java 对象new的理解
- java对象——new对象的理解
- JAVA中new的 理解
- java关键字new的理解
- 理解new 一个对象的含义
- java对象的理解
- java 对象的理解
- JAVA 创建对象 new 的认识
- java中关于new 的理解(通俗的理解)
- 理解java中的new
- 关于 new String("xyz")创建几个对象的理解
- 关于 new String("xyz")创建几个对象的理解
- 关于 new String("xyz")创建几个对象的理解
- String直接赋值和new一个对象的理解
- 深入理解Java虚拟机(4)--对象的创建(虚拟机再遇到一条new指令时,会怎么做?)
- java new 对象
- JAVA 对象引用,以及对象赋值-深刻理解A a1 = new A()这句话
- 理解JAVA对象的初始化
- SDL2入门教程(02_Getting an Image on the Screen)
- Chrome学习笔记(一):线程模型,消息循环
- dll->mdb
- 1013. 数素数 (20)
- KMP算法实现
- java 对象new的理解
- Android进程间(IPC机制)通信(Bundler,Messenger,AIDL,ContentProvider)
- 单例模式
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- Mybatis传参与返回值
- SSM框架搭建简单的前后台分离项目(前台篇)
- Mybaits根据数据库表自动生成entity,dao,mapper相关配置文件
- 报数—循环链表
- Java知识:初识集合类