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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 复仇的撒旦 中级黑马   /  2015-3-7 08:36  /  1085 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Person//定义一个描述person的类
  2.         {
  3.                 private int age;
  4.                 public void setAge(int a);//公共访问方式
  5.                 {        if(a>0 && a<=110)
  6.                                 {       
  7.                                         age=a;
  8.                                         speak();
  9.                                 }
  10.                         else
  11.                                 System.out.println("nono");
  12.                 }
  13.                 public int getAge();
  14.                 {
  15.                         return age;
  16.                 }

  17.                  private void speak();//定义行为

  18.                 {       
  19.                         System.out.println("age="+age);
  20.                 }

  21.         }
  22.         class PersonDemo
  23.         {       
  24.                 public static void main(String[] args)
  25.                 {
  26.                         Person p=new Person();//建立Person对象
  27.                 p.setAge(-20);//调用对象函数
  28.                 /*p.speak();//调用对象行为*/
  29.                 }
  30.         }
复制代码


就是一个创建对象调用但是一直编译就出现这个
E:\javaTest\day05>javac PersonDemo.java
PersonDemo.java:5: 错误: 缺少方法主体, 或声明抽象
                public void setAge(int a);//公共访问
                            ^
PersonDemo.java:6: 错误: 找不到符号
                {       if(a>0 && a<=110)
                           ^
  符号:   变量 a
  位置: 类 Person
PersonDemo.java:6: 错误: 找不到符号
                {       if(a>0 && a<=110)
                                  ^
  符号:   变量 a
  位置: 类 Person
PersonDemo.java:8: 错误: 找不到符号
                                        age=a;
                                            ^
  符号:   变量 a
  位置: 类 Person
PersonDemo.java:14: 错误: 缺少方法主体, 或声明抽象
                public int getAge();
                           ^
PersonDemo.java:16: 错误: 返回外部方法
                        return age;
                        ^
PersonDemo.java:19: 错误: 缺少方法主体, 或声明抽象
                 private void speak();//定义行为
                              ^
7 个错误

4 个回复

倒序浏览
public void setAge(int a)   public int getAge()    private void speak() private void speak() 定义这几个方法的时候后面多加了分号,把分号去掉就好了
回复 使用道具 举报
定义方法的时候多加了分号(;)
回复 使用道具 举报
lwenz 发表于 2015-3-7 09:04
public void setAge(int a)   public int getAge()    private void speak() private void speak() 定义这 ...

哦 我太粗心了
回复 使用道具 举报
在变量、执行语句、抽象方法的后面要加分号(;),在你程序中所有的方法后面都添加了分号,所以出现找不到方法主体的错误,还有一个细节,就是在对当前类中变量设置赋值时,最好写上this关键字,便于理解
修改后的代码如下:
        class Person//定义一个描述person的类
    {
           private int age;
            public void setAge(int age)//公共访问方式
            {      
                    if(age>0 && age<=110)
               {        
                     this.age=age;
                     speak();
                } else{
               
                         System.out.println("nono");
                }
                  
                           
            }
            public int getAge()
            {
                    return age;
            }

             private void speak()//定义行为

            {        
                    System.out.println("age="+this.age);
            }

    }

class PersonDemo
{        
        public static void main(String[] args)
        {
                Person p=new Person();//建立Person对象
                p.setAge(20);//调用对象函数
        /*p.speak();//调用对象行为*/
        }
}

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马