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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 常文艺 黑马帝   /  2011-11-9 11:52  /  1977 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   视频里面向对象是县创建一个对象,然后把功能封建进去,里面写上构造函数,然后主函数不停调用构造函数,那调用一般函数算不算面向对象,还有void run(){System.out.println(num);}为什么要加一个void? 起什么作用?这算是构造函数的格式还是一般函数的格式?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

7 个回复

倒序浏览
你先了解一下 对象的加载方式吧!这是我总结的笔记。
Person p = new Person();:
1因为new用到了Person.class文件。所以JVM会先找到person.class文件并加载到内存中。
2如果有静态代码块,执行该类中的static代码块,给Persion.class类进行初始化。
3在堆内存中开辟空间,分配内存地址。
4在堆内存中建立对象的特有属性,并进行默认初始化。
5对属性进行显明初始化。
6对对象进行构造代码块初始化
7对对象进行相对应的构造函数初始化。
8将内存地址赋给栈内存中的P变量。

评分

参与人数 1技术分 +2 黑马币 +1 收起 理由
admin + 2 + 1 赞一个!

查看全部评分

回复 使用道具 举报
还有就是 静态方法 ,普通方法,常量,存放在内存的代码区中(这个区的名字可能有其他的名字),对静态的放在一起,普通的放在一起。
那个void 代表的是返回类型,有些函数运算完后,不需要返回值,那时就用void,他当然是方法的格式里面的。构造方法即使不返回值也不写void

评分

参与人数 1技术分 +1 黑马币 +1 收起 理由
admin + 1 + 1

查看全部评分

回复 使用道具 举报
void..的意思是没返回值  看你定义什么方法了 要是返回int 类型的就是 int run()的方法了
回复 使用道具 举报
调用构造函数是给这个类创建一个实例,也就是一个对象并对这个对象所拥有的值初始化,这个对象就可以调用里面的任何非私有化方法了。
返回值类型      方法名称(参数类型   参数值){} void只是一个返回为空值,是不需要返回值的而而且只有void不需要返回值, 其它类型则需要返回值用return加返回值

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
调用一般函数也是面向对象,使用void说明函数没有返回值,如果定义的函数有返回值,则将void换成返回值的类型
回复 使用道具 举报
史晓霞 黑马帝 2011-11-10 14:25:12
7#
构造函数是让你创建对象的,可以是带参数的,和不带参数的,如果一个类中你不写构造函数,这个类里有一个默认的构造函数,类中的一般函数,是用你创建对象来调用的,只有你创建对象了,你才能通过对象调用里面的方法,使用里面的属性,void是说明没有返回值
回复 使用道具 举报
张翼 黑马帝 2011-11-10 15:33:24
8#
Java里所有的属性和方法都算是成员,而成员是有必然有其所属的类,调用成员,必然得使用调用成员的对象,您所说的情况应该是这种
public static void main(String argv[])
{
    a();
    b();
}
public static void a()
{
}
public static void b()
{}
a,b就是您所谓的一般方法,其实这两个方法正式跟main方法同一个类,而main()方法是静态的,静态方法中不能调用非静态的方法。因此要加上static 。
个人理解:main方法虽然也是方法,但是它到底与其他方法有很多不同之处,因为他控制了整个程序,可以理解为main就是整个java程序的一个构造函数,而构造函数是可以产生对象的,所以,main中的方法即使没有对象引导,即对象。方法的形式,依然可以调用方法,所以说还是面向对象的。

根据构造函数的定义,构造函数不可以有void,所以这不是构造函数,void的作用就是为了声明函数没有返回值类型。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马