黑马程序员技术交流社区

标题: 构造函数和一般函数的一些问题 [打印本页]

作者: 常文艺    时间: 2011-11-9 11:52
标题: 构造函数和一般函数的一些问题
   视频里面向对象是县创建一个对象,然后把功能封建进去,里面写上构造函数,然后主函数不停调用构造函数,那调用一般函数算不算面向对象,还有void run(){System.out.println(num);}为什么要加一个void? 起什么作用?这算是构造函数的格式还是一般函数的格式?
作者: 海林    时间: 2011-11-9 11:57
你先了解一下 对象的加载方式吧!这是我总结的笔记。
Person p = new Person();:
1因为new用到了Person.class文件。所以JVM会先找到person.class文件并加载到内存中。
2如果有静态代码块,执行该类中的static代码块,给Persion.class类进行初始化。
3在堆内存中开辟空间,分配内存地址。
4在堆内存中建立对象的特有属性,并进行默认初始化。
5对属性进行显明初始化。
6对对象进行构造代码块初始化
7对对象进行相对应的构造函数初始化。
8将内存地址赋给栈内存中的P变量。

作者: 海林    时间: 2011-11-9 12:02
还有就是 静态方法 ,普通方法,常量,存放在内存的代码区中(这个区的名字可能有其他的名字),对静态的放在一起,普通的放在一起。
那个void 代表的是返回类型,有些函数运算完后,不需要返回值,那时就用void,他当然是方法的格式里面的。构造方法即使不返回值也不写void
作者: 刘福双    时间: 2011-11-9 12:21
void..的意思是没返回值  看你定义什么方法了 要是返回int 类型的就是 int run()的方法了
作者: 胡文杰    时间: 2011-11-9 12:25
调用构造函数是给这个类创建一个实例,也就是一个对象并对这个对象所拥有的值初始化,这个对象就可以调用里面的任何非私有化方法了。
返回值类型      方法名称(参数类型   参数值){} void只是一个返回为空值,是不需要返回值的而而且只有void不需要返回值, 其它类型则需要返回值用return加返回值
作者: wangqing    时间: 2011-11-10 13:37
调用一般函数也是面向对象,使用void说明函数没有返回值,如果定义的函数有返回值,则将void换成返回值的类型
作者: 史晓霞    时间: 2011-11-10 14:25
构造函数是让你创建对象的,可以是带参数的,和不带参数的,如果一个类中你不写构造函数,这个类里有一个默认的构造函数,类中的一般函数,是用你创建对象来调用的,只有你创建对象了,你才能通过对象调用里面的方法,使用里面的属性,void是说明没有返回值
作者: 张翼    时间: 2011-11-10 15:33
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的作用就是为了声明函数没有返回值类型。




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