黑马程序员技术交流社区
标题:
大神们,帮我看看这道题
[打印本页]
作者:
18210530167
时间:
2016-2-27 22:48
标题:
大神们,帮我看看这道题
public class MyPrint
{
public void MyPrint()//1、为什么这个不是构造函数?构造函数也是函数为什么不能有返回值?
{
System.out.println("method");
}
public test()//这是普通方法,必须要加返回值;
{
}
public static void main(String[] args) //2、main函数也是在MyPrint类中,为什么main可以调用新建MyPrint的对象?那新建的对象里是不是也包括main函数自己呢??
{
MyPrint mp=new MyPrint(); //构造函数自动调用
mp.MyPrint(); //方法必须显示调用
}
}
3、我还见过一个类,类里的函数是新建自己类的对象,这种成员调用自己类的方法让我很不解。。求大神指教!
作者:
pangzi_zhou
时间:
2016-2-27 23:12
本帖最后由 pangzi_zhou 于 2016-2-27 23:23 编辑
我也不是很清楚,不过,大家可以探讨一下1、构造函数的形式,我觉得跟编译器有点关系,编译器会识别什么函数是构造函数还是普通函数
2、main函数是静态函数,在类加载的时候就会加载,存储在静态方法区,是共享的,所以不存在多个主函数
3、方法里面新建本类对象的引用,我觉得跟一个房子存了一个门牌号一样,然后这个门牌号指向一个一模一样的房子
作者:
huang_bing_hua
时间:
2016-2-28 07:35
回答第一个问题:构造方法的格式是private/public 类名(),是没有返回值的,这就是定义
作者:
蓝色小宇宙
时间:
2016-2-28 13:22
public void MyPrint()//1、为什么这个不是构造函数?构造函数也是函数为什么不能有返回值
因为构造函数的定义格式就是没有返回值类型的(个人看法)
public test()//这是普通方法,必须要加返回值;
这个是必须要加返回值类型,不是返回值,有点强迫症 ╭(╯^╰)╮
MyPrint mp=new MyPrint(); //构造函数自动调用
这个不是构造函数调用,MyPrint只是个普通的没有返回值非静态方法...在主函数中如果要调用本类中非静态的方法时,需先创建对象,再由对象去调用非静态方法,如果是调用静态方法,就可以直接单独调用,输出或者赋值调用
作者:
晓寒轻
时间:
2016-2-28 15:56
有些定义的东西用不着去拿常规方法解释。就像为什么一个字节是8位,定义的就接受就行了,至于其他问题没仔细看。。哈哈 加油吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2