A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 8047107 于 2013-5-21 14:00 编辑
  1. //需求:汽车修配厂。对汽车进行改装,将来的车够改成黑车,三个轮胎。
  2.         public static void show(Car c)
  3.         {
  4.                 c.num = 3;
  5.                 c.color = "black";
  6.                 c.run();
  7.         }
复制代码
毕老师讲的时候说未知的参数就是不知道是哪个车,于是就用Car类型,我想说有Car这个类型的嘛。。。。那如果是苹果,类型岂不是Apple啦?
好奇怪,这个根据什么决定的呢? 是根据下面的类的名字吗?
  1. class Car    //根据这个Car决定的么?
  2. {
  3.              //描述颜色
  4.               String color = "红色";
  5.            //描述轮胎数
  6.              int num = 4;
  7.            //运行行为。
  8.             void run()
  9.           {
  10.                 System.out.println(color+".."+num);
  11.            }
  12. }
复制代码
好奇怪。我觉得大家回复的都是说类名Car的定义,这个我当然知道定义一个类,是汽车图纸,当然用class Car
但是我想问的是上面修车部分的调用:public static void show(Car c)这个红色的是不是一定要跟绿色的一致?是或者不是呢?说什么抽象的听不太明白

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

14 个回复

倒序浏览
抽象。这个词去字典查一下先。抽象并不是指具体的实物,而是一组有共同特性的共称。比如说,我知道会编程但是你不知道我具体使用的是哪种语言。所以你问我的时候,只能问我的计算机语言熟练吗。当你知道我会C++或是JAVA时,你就直接问我,你的JAVA熟练吗或是你的C++熟练吗。这时的计算机语言就是C++或JAVA,C#等的抽象
回复 使用道具 举报
slatop@qq.com 发表于 2013-5-15 16:47
抽象。这个词去字典查一下先。抽象并不是指具体的实物,而是一组有共同特性的共称。比如说,我知道会编程但 ...

我觉得是按照描述对象的类的名字来决定的。
回复 使用道具 举报
slatop@qq.com 发表于 2013-5-15 16:47
抽象。这个词去字典查一下先。抽象并不是指具体的实物,而是一组有共同特性的共称。比如说,我知道会编程但 ...


或者直接问你 在这个语句中 如果是苹果的话 你用抽象的思想没用啊 关键你要给个类型出来 你会写什么类型的?是APPLE还是chouxiang?
回复 使用道具 举报
电器类-数码产品类-移动设备类-手机类-苹果手机-具体的苹果手机对象,包括型号功能等。
回复 使用道具 举报
slatop@qq.com 发表于 2013-5-15 22:05
电器类-数码产品类-移动设备类-手机类-苹果手机-具体的苹果手机对象,包括型号功能等。 ...

还是没有正面回答问题呢~
如果我定义一个类 class apple
那我定义一个函数 函数的参数类型应该是什么类型的?
public static void show(__ a)    应该写什么呢 就仅仅在这个题目 这里应该写什么类型的?
回复 使用道具 举报
说说自己的理解, 不对的请见谅,因为本身我也是在学习中。
我的理解是:你不要去纠结一个类的名字。类是什么?它是对对象的描述,也就是对具体事物的描述而已。也就是类是对象的蓝图,是一张图纸。
比如说这个汽车吧,设计图纸(类)已经画好了,接下来就是按照这个图纸生产汽车(对象)。
那么我们为这个设计图纸取个什么名字呢(类名)?这个本来可以随便取什么名字的。但是我们为了方便一看到图纸的名字就知道它里面设计的内容,所以就取名汽车设计图。你也可以取名叫建筑施工图,但里面的内容其实是汽车设计图。为了阅读性强,我想谁都不会去取一个没任何意义的名字吧,自然会取上汽车设计图了。

还有就是类的名字,跟函数里面的参数类型没关系吧,本身就是为了阅读性强取了一个名字而已。
以上个人理解,不对的请大大们指出。谢谢!!

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
啊!才回答完,梦希就给我加分啦!!!第一次得到技术分,好激动!!!

能得到加分是不是说明我上面的理解都是对的呢?
回复 使用道具 举报
1, 首先你要了解的是java是一门面向对象的语言, 我们开发就是在创建对象,使用对象,指挥对象做事情.
    给你举2个经典的例子,A.我们在黑板上画园: 对象就是园, 元具有半径(园的属性,和你上面的汽车轮胎和颜色一样),有画园的方法(和你上面的run方法一样),
    我们画圆只用创建圆的对象,使用画圆的方法就行了. B.火车刹车的例子, 我们创建的是火车的对象,火车具有刹车的方法.
2. 至于给对象初始化赋值,可以用构造方法,set ,get 方法,
3. Car 是一个类,封装了car具有的属性, 至于老师说的car类型, 是创建car这个对象吧.
回复 使用道具 举报
悟佛修道 发表于 2013-5-15 23:06
说说自己的理解, 不对的请见谅,因为本身我也是在学习中。
我的理解是:你不要去纠结一个类的名字。类是什 ...

我觉得说的还是比较对的,但是不确定这个类跟类型到底有没有关系。也可能只是为了方便阅读 让两者一致
回复 使用道具 举报
Car类  只是一个描述车的属性和行为  它只是个名称。LZ纠结在名称上个人感觉没必要吧!!主要还是理解这个原理就OK啦!!Car只是为了增强阅读性!!
回复 使用道具 举报
Car类型就是和Car这个类里定义的属性功能一样的类型。这就是一个称呼
回复 使用道具 举报
本帖最后由 askyle 于 2013-5-16 10:39 编辑

class Car {} 的“Car” 是指这个class 类的一个名字,命名作用于能快速定位并能被主程序调用。 名称命名方法是根据当前需求而命名的。 如写个关于飞机的类时根据需求命名“Aircraft”

复制代码
class Aircraft
{
   Aircraft()
    {
       System.out.println("这个飞机");
    }
}
写好的class就可以调用啦!
回复 使用道具 举报
如果问题已经解决了,那么大家请把帖子的类型改为“已解决”,在自己帖子的左下角点编辑,然后选择帖子的分类进行改正。{:soso_e163:}
回复 使用道具 举报
Sword 金牌黑马 2013-5-21 09:50:36
15#
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马