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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 芦青 中级黑马   /  2013-3-30 14:15  /  1651 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 芦青 于 2013-3-30 15:25 编辑

在毕老师的视屏中学习到,定义类就是在定义属性和行为...我疑惑的是,定义一个类的时候,一定要定义属性和行为,我能不能定义一个全是属性不带行为的类?或者定义一个全是行为没有属性的类?..代码我试验时,没有报错..是不是,一个类里什么都不定义,系统会有一个默认的空参数的构造函数,这里的空参数意思是不是说类里的属性和行为都为空?还是指行为是空?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

倒序浏览
成员变量是为null的,但是成员函数不能为空,如果一个类继承父类,那么他继承的父类的成员函数不可能为空。我是这样理解的...
可以定义一个没有属性的类,也可一定义全是属性的类。这个是可以的,java中可以通过定义没有行为的类,来模仿c语言中的结构体...
也可以通过定义没有属性类,来模仿c语言中的函数...
每一个类都有一个默认的构造空参数。每一个类的都是Object的子类,而这个空参数的构造函数就是继承Object的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
似水像火 发表于 2013-3-30 14:23
成员变量是为null的,但是成员函数不能为空,如果一个类继承父类,那么他继承的父类的成员函数不可能为空。 ...

成员函数可以为空啊,一个类什么都不定义,也能创建对象,只是没有意义而已,但函数也可以不写..默认的构造函数到底是代表什么?
回复 使用道具 举报
构造函数的存在,首先是为了创建对象的,然后可以通过构造函数对类里的成员变量进行初始化,空参数意思不是说类里的属性和行为都为空,只是不通过构造函数初始化内部属性而已

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
楼主,属性在某种意义上讲,是包含行为的哦,你说的属性其实指的是静态属性,如一个人的姓名,年龄;而你说的行为是指动态属性,如一个人学习的行为。
1、一个类是可以定义全是静态属性的,如枚举类,里面可全定义为各种常量值。
一个类也可以定义全是动态属性的,如工具类,里面全是静态的方法,比如java.util包中Arrays类或者Collections类。
其实这要看你的需求哦,如果你所用的类不需要有动态属性,即行为存在,可以定义没有属性的类,反之可定义全为静态属性的类。
2、如果你的一个类什么都不定义的话,是包含一个默认的构造函数的,并且这个类是默认继承Object类的,在Object里也有很多方法啊。所说的空参数,是不含静态属性值和动态属性的,举个反例来说,你定义一个Person类,那么人一出生就有哭的行为,你可以将这个行为定义在Person这个构造函数内部的,也可以定义在构造代码块中的。
不知道楼主明白没呢?希望对你有帮助哦,嘿嘿:P

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
小黑黑 发表于 2013-3-30 15:17
楼主,属性在某种意义上讲,是包含行为的哦,你说的属性其实指的是静态属性,如一个人的姓名,年龄;而你说 ...

非常感谢,豁然开朗..{:3_64:}
回复 使用道具 举报
默认会有无参构造函数,如果手动编写构造函数之后,就不会有无参构造函数了
回复 使用道具 举报
想定义一个没有行为的类?先想办法把“上帝”干掉{:soso_e151:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马