黑马程序员技术交流社区

标题: 构造函数和构造代码块 [打印本页]

作者: sun~~    时间: 2013-1-9 14:43
标题: 构造函数和构造代码块
本帖最后由 张向辉 于 2013-1-16 12:02 编辑
  1. package exercise5;

  2. public class personDemo {
  3.              private String name;
  4.              private int age;
  5.      personDemo(String name){
  6.              this.name=name;
  7.       }
  8.      personDemo(String n,int a){
  9.              name=n;
  10.              age=a;
  11.      }
  12.      public void speak(){
  13.              System.out.println("name="+name+"……age="+age);
  14.      }
  15. }
  16. class PersonDemo3{
  17.                 public static void main(String[] args) {
  18.                       personDemo p= new personDemo("lixi");
  19.                       p.speak();
  20.         }
  21. }



复制代码
那里出错了呢?运行不出结果?
作者: 黑马王振宇    时间: 2013-1-9 14:48
呃,这个。。。
public class中没有主函数~~
解决方法可以把public放到PersonDemo3前边。。。
作者: 罗利华    时间: 2013-1-9 15:02
解释:
如果有main()方法的这个类(main()方法是程序的入口,所有程序都是从这里开始。)
的类名被public修饰那么保存的时候文件名就必须和这个类名相同。否则编译不过去。
你的代码只需要将public关键字移到带main()方法的类上就行了。
作者: 李奇    时间: 2013-1-9 15:28
我刚才给你运行了一下 发现没有问题啊 结果是,你的代码里
personDemo(String n,int a){

10.             name=n;

11.             age=a;

12.     }
这个构造函数没有在主函数里面用到

捕获.PNG (7.88 KB, 下载次数: 43)

捕获.PNG

作者: 黄锦成    时间: 2013-1-9 16:13

  1. class PersonDemo {
  2.         private String name;
  3.         private int age;

  4.         PersonDemo(String name) {
  5.                 this.name = name;
  6.         }

  7.         PersonDemo(String n, int a) {
  8.                 name = n;
  9.                 age = a;
  10.         }

  11.         public void speak() {
  12.                 System.out.println("name=" + name + "……age=" + age);
  13.         }
  14. }

  15. public class PersonDemo3 {
  16.         public static void main(String[] args) {
  17.                 PersonDemo p = new PersonDemo("lixi");
  18.                 p.speak();
  19.         }
  20. }
复制代码





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