黑马程序员技术交流社区

标题: 关于构造函数内部定义函数 [打印本页]

作者: 黄长利    时间: 2012-3-24 20:03
标题: 关于构造函数内部定义函数
我知道构造函数是对象一建立就运行,用于将对象初始化,如果我在构造函数中
定义一个函数是否可行呢?
  1. class  Demo
  2. {       
  3.         Demo()
  4.         {
  5.                 public void speak()
  6.                 {
  7.                         Sytem.out.println("I can speak");
  8.                 }
  9.                 System.out.println("gou zao hanshu ");
  10.         }
  11.         void show()
  12.         {
  13.                 System.out.println("my name is gou zao han shu ");
  14.         }
  15. }
复制代码
编译之后,报错如图所示:

为什么不能这样写呢?求解释。。
作者: 刘元霄    时间: 2012-3-24 20:28
你在构造函数内定义一个方法还能传递参数进去吗?

构造函数内顶一个一个方法 第一  你怎么调用这个方法?  第二 你直接在里面定义有什么一次?

  这个问题问的就好像  我知道吃饭 得用筷子 可是你非得用脚拿筷子吃饭一样!
作者: 杨波    时间: 2012-3-24 20:37
楼上正解,一个方法不可以定义在另一个方法内部,内部类倒是可以用。
作者: 孙国军    时间: 2012-3-24 21:16
一个函数内不能再定义一个函数,而构造函数只是一种特殊的函数,所以也不能
作者: 李柯    时间: 2012-3-24 21:36
构造函数主要用来为对象成员变量赋初始值的!
作者: 孙雪娇    时间: 2012-3-24 22:31
JAVA的语法规则:方法只能够定义在类或者接口里面,虚拟机编译的时候也是按照这个规则去编译。
函数里再定义函数。。。我想这个就违背了面向对象的意义了。。。函数本身就是一系列过程,过程里再定义过程。。何必呢。。。。{:soso_e156:}

作者: 袁野    时间: 2012-3-24 22:39
可在构造方法里使用方法但不可以定义
作者: 李成    时间: 2012-3-24 23:19
在构造函数中定义一个函数是可以的 但是你必须要使用这个函数比如
  1. import java.beans.Statement;


  2. public class test {

  3.         public static void main(String[] args) {
  4.                 System.out.println(new Statement(args, null, args) {

  5.                         public String getName() {
  6.                                 return "heima";
  7.                         }

  8.                 }.getName());
  9.         }
  10. }
复制代码

作者: 庞子华    时间: 2012-3-24 23:49
李成 发表于 2012-3-24 23:19
在构造函数中定义一个函数是可以的 但是你必须要使用这个函数比如

学习一下
作者: 唐林渊    时间: 2012-3-24 23:54
主函数呢  哥们
作者: 冯建鹏    时间: 2012-3-24 23:58
既然它叫构造函数,应该也是函数吧,是函数的话,java里面函数里面是不可以定义函数的,函数里面可以调用函数。我试了下在构造函数里面调用函数是没问题的。




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