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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18210530167 中级黑马   /  2016-2-27 22:48  /  790 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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、我还见过一个类,类里的函数是新建自己类的对象,这种成员调用自己类的方法让我很不解。。求大神指教!

4 个回复

倒序浏览
本帖最后由 pangzi_zhou 于 2016-2-27 23:23 编辑

我也不是很清楚,不过,大家可以探讨一下1、构造函数的形式,我觉得跟编译器有点关系,编译器会识别什么函数是构造函数还是普通函数
2、main函数是静态函数,在类加载的时候就会加载,存储在静态方法区,是共享的,所以不存在多个主函数
3、方法里面新建本类对象的引用,我觉得跟一个房子存了一个门牌号一样,然后这个门牌号指向一个一模一样的房子
回复 使用道具 举报
huang_bing_hua 来自手机 中级黑马 2016-2-28 07:35:12
藤椅
回答第一个问题:构造方法的格式是private/public 类名(),是没有返回值的,这就是定义
回复 使用道具 举报
  public void MyPrint()//1、为什么这个不是构造函数?构造函数也是函数为什么不能有返回值
因为构造函数的定义格式就是没有返回值类型的(个人看法)

public test()//这是普通方法,必须要加返回值;
这个是必须要加返回值类型,不是返回值,有点强迫症 ╭(╯^╰)╮

MyPrint mp=new MyPrint();  //构造函数自动调用
这个不是构造函数调用,MyPrint只是个普通的没有返回值非静态方法...在主函数中如果要调用本类中非静态的方法时,需先创建对象,再由对象去调用非静态方法,如果是调用静态方法,就可以直接单独调用,输出或者赋值调用
回复 使用道具 举报
有些定义的东西用不着去拿常规方法解释。就像为什么一个字节是8位,定义的就接受就行了,至于其他问题没仔细看。。哈哈  加油吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马