java创建对象
例如,booka=newbook();其中,第一个book、a、new以及book();分别表示什么含义??如果notebook为book的派生类,那么booka=new...
例如,book a = new book(); 其中,第一个book、a、new以及book();分别表示什么含义??如果notebook为book的派生类,那么book a = new notebook()正确么,反过来notebook a = new book()呢?
展开
展开全部
不知道你学过C/C++没有?
book a
表示创建一个指向book类对象的指针/引用。详细来说,a本质上是一个unsigned int变量,但是这个整形变量不储存别的东西,就储存内存地址。并且因为JAVA这种语言的特点,使得系统(虚拟机)自动进行类型检查,保证a变量指向的是book类型或book类子类类型的对象。
new在JAVA里是一个特殊操作符,但是我们的操作系统是用C语言来写的,new必然对应C语言的某个或某组系统函数调用。这里一般是等价于C语言的malloc函数,作用是请求操作系统为对象分配一块内存空间。
book()是构造函数,是在new出来的内存区域填充数据,初始化book类对象的一些变量或状态。
book a=new notebook()可以,父类的指针/引用可以指向子类的对象。(多态)
反过来notebook a = new book()不行。因为对于子类对象,父类所声明的变量是子类对象的空间的一部分,这意味着父类对象的所占内存空间大小不超过子类对象的大小。所以,不可能让子类指针指向父类对象,否则会指向一块未被分配的内存空间,导致出错。
book a
表示创建一个指向book类对象的指针/引用。详细来说,a本质上是一个unsigned int变量,但是这个整形变量不储存别的东西,就储存内存地址。并且因为JAVA这种语言的特点,使得系统(虚拟机)自动进行类型检查,保证a变量指向的是book类型或book类子类类型的对象。
new在JAVA里是一个特殊操作符,但是我们的操作系统是用C语言来写的,new必然对应C语言的某个或某组系统函数调用。这里一般是等价于C语言的malloc函数,作用是请求操作系统为对象分配一块内存空间。
book()是构造函数,是在new出来的内存区域填充数据,初始化book类对象的一些变量或状态。
book a=new notebook()可以,父类的指针/引用可以指向子类的对象。(多态)
反过来notebook a = new book()不行。因为对于子类对象,父类所声明的变量是子类对象的空间的一部分,这意味着父类对象的所占内存空间大小不超过子类对象的大小。所以,不可能让子类指针指向父类对象,否则会指向一块未被分配的内存空间,导致出错。
展开全部
book 是要创建对象的类型 a 是变量名 new 是创建对象必须的关键字 book()是调用book对象的构造方法来创建对象
book a = new notebook(); 这个正确 最基础的多态应用 自动向上转型
notebook a = new book() 这个不行 没有自动向下转型
book a = new notebook(); 这个正确 最基础的多态应用 自动向上转型
notebook a = new book() 这个不行 没有自动向下转型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. book 是一种自定义的对象; 这里的a是一个引用,指向了new出来的那个book。
2. 如果notebook为book的派生类,则book a = new notebook()是正确的,这叫父类引用指向子类对象, 是多态的一种体现。
3. notebook a = new book() 是错误的。 很简单的道理, 如果自行车 和 车, 车是一个大类, 自行车派生于车, 你不可能拿个车 来当自行车用,它有可能是汽车, 三轮车等各种车。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. book a = new book(); 第一个book 是说明a 是个book 类型 第一句话就是 创建了一个a 他是book 类型的,book()这是调用了book的构造器 通过这个构造器才能new出 book类型的a
2.派生类 又叫 子类 也就是 book 是notbook的父类,简单说 book a = new notebook()
这个是正确的 这叫向上造型 以后继承那会讲的, 反过来 就不行了。
还有我不知道你是自己学的 还是 找的培训机构, 提醒一下 必须首字母大写
以后也是书写一定要规范 还有缩进 因为你写的代码不是就你自己看,如果书写习惯很差的话 单位是不会愿意要的。
希望能帮助到你,望采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询