黑马程序员技术交流社区

标题: 类是对象的抽象,对象是类的具体化 [打印本页]

作者: 王雷    时间: 2012-9-26 19:17
标题: 类是对象的抽象,对象是类的具体化
类是对象的抽象,对象是类的具体化或者说实体化,具体应该怎么理解,求达人赐教啊,最好能解释的易懂些
作者: 冯培军    时间: 2012-9-26 19:41
1、类是对象的抽象;对象是类的实例。没有类就没有对象,但没有对象可以有类。
2、类不占用内存空间,对象占用存储空间。

类就是内存中一个说明(描述),对象按照这种描述被 new(构造)出来的实例
比如:
class A{
   public int x;
   publix void Test(){Console.WriteLine("hellow world");
}
class App{
   static void Main(){
     A a=new A();
     a.x=2;
     a.Test();
   }
}


作者: 孙岳    时间: 2012-9-26 19:51
http://bbs.itheima.com/forum.php ... mp;page=1#pid154414
看看我这篇贴子吧!
作者: 邓利军    时间: 2012-9-26 20:17
本帖最后由 邓利军 于 2012-9-26 20:21 编辑

对于"类是对象的抽象,对象是类的具体化或者说实体化",
我的理解是,首先说何为抽象,抽象就是看不见,摸不着的.再说类,类是不占用内存空间,而对象是占用存储空间,你可以看到毕老师画内存空间开辟图,没见过开辟一个类的空间吧.对象他有属性,有行为,也是就说有方法,比如一个名为"人"的类,属性有姓名,年龄,等等,还有行为,或说方法,像吃饭,学习JAVA算是行为,方法.  比如一个名为"狗"的类,属性和行为就不用说了吧.
因此,至于"类是对象的抽象 ",那就是把对象描述出来了,你看不到摸不着吧,他只是描述,也就是把对象抽象化了,它就是类,这就是类是对象的抽象。
至于"对象是类的具体化或者说实体化",那就是说,看不见的摸不着的 变成看得见的属性,行为或说方法, 就是具体化,实体化了,实体看得见吧,占内存空间的.
以上是个人的理解,仅供参考.
作者: 李建强    时间: 2012-9-26 21:53
我觉得回答问题没必要引用通篇大论,又不是报告、论文。
  实体,你懂的,
比如汽车是实体,你可以用汽车的功能:开(),汽车也有属性:颜色
  抽象呢,就是实体的想象了,有点不怎么合适...
抽象派油画见过吧,全凭你自己想想,
传说中的画饼充饥知道吧,饼就是实体,那个画就是抽象出来想想出来的,
如果比照着这张饼图做出一张饼来,就是抽象实体化了。
汽车也是,比着图纸new出一辆汽车就是抽象实体化了。

作者: 李建强    时间: 2012-9-26 23:23
呵呵能帮到就好,用自己语言总结的,我觉得比那些长篇大论的好多了
作者: 李铁    时间: 2012-9-27 00:13
类是对象的抽象,对象是类的具体化或者说实体化,具体应该怎么理解

我来更形象地回答你的问题
//下面是个类,描述的是狗的类型,名字,还有吠叫的方法。
        //类所描述是的对象知道什么与执行什么,类是对象的篮图,也是对象的抽象
        class Dog{
                int  size;
                String name;
                Dog(int size,String name){
                        this.size=size;
                        this.name=name;
                }
                public void bark(){
                        if(size>30){
                        System.out.println("汪,汪,汪");
                        }else if(size>10){
                                System.out.println("渥,渥,渥");
                        }else{
                                System.out.println("渥渥渥....");
                        }
                }
                //创建几只狗对象,赋予它们类型,名字,吠叫的方法;所以对象就是类的具体化或说是实体化
                public static void main(String args[]){
                        Dog d1 = new Dog(45,"旺财");
                        Dog d2= new Dog(15,"小强");
                        Dog d3= new Dog(8,"大黄");
                        d1.bark();
                        d2.bark();
                        d3.bark();
                }
               
        }
作者: 翁鹏    时间: 2012-9-27 08:05
本帖最后由 翁鹏 于 2012-9-27 16:39 编辑

我的理解是 类是对同一类事物的抽象,是对象的图纸,模板。
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
经典的例子:例如,汽车设计图 就是 对汽车这一类事物的描述,把汽车这一类事物共同的东西抽取出来这就是类。  但是,你并不能 开设计图吧,你必须把汽车按设计图造出来才能开吧。这就是类的实例化,创造出具体的汽车对象,你才能开。
作者: 王雷    时间: 2012-9-27 21:51
谢谢大大们  问题搞定咯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2