问答详情
源自:8-5 Java 中的成员变量和局部变量

类与对象的问题

背景:类是抽象的,对象是具体的。

代码

public class Order{
    private Item i = new Item();
}
class Item{}

问题:首先说明的是我非常清楚应该怎么使用,对使用没有任何问题。

以上代码中,class Order这个时候是一个抽象的类,并没有实例化。而在Order的成员变量中有一个具体的Item对象i,同时另外一个背景是:成员变量应尽量初始化而不使用默认的初始值。那么问题就是:一个抽象的概念里面,为什么会有一个具体的对象,这样子当我实例化Order对象的时候,该对象的Item成员变量是类里面的i的引用,还是每一个具体的实例化,都重新new了一个Item对象?这个时候的 class Order的成员变量Item在内存中存放的具体是什么?是一个NULL引用?还是什么?

提问者:Antique 2017-09-06 21:34

个回答

  • 鬼鬼qiang
    2017-09-06 23:02:17
    已采纳

    属性你初始化不赋值的话默认null.你的这些问题你看视屏里应该比我说的清楚。首先创建一个包吧

    在这个包里面我定义了一个Car类(车)而我在这个包里面我又定义了一个小型汽车类。然后我在定义个大型汽车类在这三个类中都有各自属性和方法。而这些类型的汽车是不是都属于car这个类。也就是主类。我写程序在car中要想用小型汽车这个类里的属性和方法是不是先要     小型汽车  变量名=new 小型汽车();才可以用这个类里面的属性和方法 。

  • 鬼鬼qiang
    2017-09-08 09:00:54

    我现在算是职场小白。每天在补这些基础

  • 鬼鬼qiang
    2017-09-08 08:59:53

    是的 new只有这个作用 没别的 到最后你用框架都不用new了懂怎么用就行了


  • 鬼鬼qiang
    2017-09-06 22:05:58

    类里有属性和方法 属性 :张三  有年龄,名字 这就叫属性。方法就是能做什么事。就比如张三能吃饭睡觉

    而你说的 void zhangsan(){

    System,out.println(“张三只会吃饭睡觉”);

    }

    你本身的写法就错了,你写错的 那个是内部类

  • 鬼鬼qiang
    2017-09-06 22:00:59

    首先你写的这个是什么东西,类是抽象的不错,就拿人一样,张三,李四都是属于人。而统称位抽象的人类。但是我想把张三从这个人里面具体的实例化后才可以用这个对象。说白了对象就是类的实例化具体表现。人类是一个抽象的类。而张三是属于这个类。我们要使用这个类里的张三我们先要实例化这个张三也就是创建这个张三对象