标题:求大侠帮我编译一下这个程序,看要如何修改????
只看楼主
momochong27
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-14
结帖率:0
已结贴  问题点数:2 回复次数:10 
求大侠帮我编译一下这个程序,看要如何修改????
///创建一个抽象类
///schoolname指学校名称
///classname指班级名称
///location指地址
///set是设置器,用来赋值给对象
///由于在这个类中存在抽象方法,所以这个类就是一个抽象类

abstract class school
{
    String schoolname;
    String classname;
    String location;
    public void setschoolname(String schoolname)//通过设置器来设置学校名称,班级名称
    {  this.schoolname=schoolname;   }

    public void setclassname(String classname)
    {  this.classname=classname;   }

    public String getschoolname()
    {  return  schoolname;  }

    public String getclassname()
    {  return  classname;   }

    abstract void setlocation(String location);
    abstract String getlocation();

    public String tostring()
    {
       String infor="学校名称:"+schoolname+";"+" "+"班级名称:"+classname;
       return infor;
    }
  }
///创建一个学生类来继承这个抽象类,这个类中设置了学生姓名,学号
///性别、出生年月、家庭地址等参数。且使用设置器和访问器来编写它
///studentname指学生姓名
///studentcode指学生学号
///studentsexy指学生性别
///studentbithday指学生出生年月
///studentaddress指学生家庭地址
///set是类中的设置器
///get是类中的访问器
 class student1 extends school
 {
    String studentname;
    String studentcode;
    String studentsexy;
    String studentbirthday;
    String studentaddress;
    void setlocation(String location)
    {   this.location=location;  }
    void getlocation()
    {   return location;  }
    void setstudentname(String studentname)
    {  this.studentname=studentname;  }

    void setstudentcode(String studentcode)
    {  this.studentcode=studentcode;  }

    void setstudentsexy(String studentsexy)
    {  this.studentsexy=studentsexy;  }

    void setstudentbirthday(String studentbirthday)
    {  this.studentbirthday=studentbirthday;  }

    void setstudentaddress(String studentaddress)
    {  this.studentaddress=studentaddress;  }

    String getstudentname()
    {  return studentname;  }

    String getstudentcode()
    {  return studentcode;  }

    String getstudentsexy()
    {  return studentsexy;  }

    String getstudentbirthday()
    {  return studentbirthday;  }

   String getstudentaddress()
    {  return studentaddress;  }
    public String tostring()
    {  
       String infor="super.tostring()+"学校地址"+location+";  "+"学生姓名"+studentname+";"+"  "+"学号:"+studentcode+";"+" "+"性别:"+studentsexy+"; "+"  "+"出生日期:"+studentbirthday+";"+"  "+"家庭地址:"+studentaddress;
       return infor;
     }
  }
///在这个类中,拥有抽象方法。所以这个类也是一个抽象类。同时也设置了姓名、
///学号、性别、出生年月、家庭地址的参数
///这个类是一个抽象的学生类
///studentname指学生姓名
///studentcode指学生学号
///studentsexy指学生性别
///studentbirthday指学生出生年月
///studentaddress指学生家庭地址
///set是类中的设置器
///get是类中的访问器
 abstract class student2 extends school
 {
    String studentname;
    String studentcode;
    String studentsexy;
    String studentbirthday;
    String studentaddress;
    abstract void setlocation(String location);
    abstract String getlocation();
    void setstudentname(String studentname)
    {  this.studentname=studentname;  }
    void setstudentcode(String studentcode)
    {  this.studentcode=studentcode;  }
    void setstudentsexy(String studentsexy)
    {  this.studentsexy=studentsexy;  }
    void setstudentbirthday(String studentbirthday)
    {  this.studentbirthday=studentbirthday;  }
    void setstudentaddress(String studentaddress)
    {  this.studentaddress=studentaddress;  }
    String getstudentname()
    {  return studentname;  }
    String getstudentcode()
    {  return studentcode;  }
    String getstudentsexy()
    {  return studentsexy;  }
    String getstudentbirthday()
    {  return studentbirthday;  }
    String getstudentaddress()
    {  return studentaddress;  }
    public String tostring()
    {
       String infor=super.tostring()+"学生姓名:"+studentname+"; "+"学号:"+studentcode+";"+"性别:"+studentsexy+";"+"出生年月:"+studentbirthday+";"+"家庭地址:"+studentaddress;
       return infor;
     }
  }
///创建一个类来继承上面的一个抽象类,来实现那个抽象类中的抽象方法。这个类中无抽象方法,
///也没有声明为抽象类,这个类就不是抽象类
///这个类是一个抽象类的学生类
///studentname指学生姓名
///studentcode指学生学号
///studentsexy指学生性别
///studentbirthday指学生出生年月
///studentaddress指学生家庭地址
///set是类中的设置器
///get是类中的访问器
 class student3 extends student2
   {
      void setlocation(String location)
       {
         this.location=location;
       }
      String getlocation()
      {
         return location;
      }
      public String tostring()
      {
         String  infor=super.tostring()+"学校地址:"+location+";"+"  ";
          return infor;
       }
 }
///这是一个主运行类
///s1,s3是为学生类创建出来的两个不同的对象
///set指设置器
///通过tostring参数将对象中的参数一一以字符串形式输出
 
public class abstracttest
  {
     public static void main(String[] args)
     {
        student1 s1=new student1();
        student3 s3=new student3();
        s1.setschoolname("重庆大学");
        s1.setclassname("计算机三班");
        s1.setlocation("沙坪坝");
        s1.setstudentname("王浩");
        s1.setstudentcode("95012");
        s1.setstudentsexy("男");
        s1.setstudentbirthday("1976-07-14");
        s1.setstudentaddress("重庆市解放碑");
        s3.setschoolname("四川大学");
        s3.setclassname("机械系一班");
        s3.setlocation("成都市");
        s3.setstudentname("董洁");
        s3.setstudentcode("33012");
        s3.setstudentsexy("女");
        s3.setstudentbirthday("1974-08-21");
        s3.setstudentaddress("成都市区");
        System.out.println(s1.tostring());
        System.out.println(s3.tostring());
       }
 }
   
搜索更多相关主题的帖子: void 学校 abstract public school 
2013-03-22 15:27
丶XCC丶
Rank: 2
等 级:论坛游民
帖 子:13
专家分:50
注 册:2013-3-20
得分:1 
亲,abstract申明的类只有属性的方法名,没有具体的方法体啊。abstract是抽象的意思,也就是这个类很抽象,只有定义没有实体。由他的子类实现方法。
2013-03-22 15:59
丶XCC丶
Rank: 2
等 级:论坛游民
帖 子:13
专家分:50
注 册:2013-3-20
得分:0 
public void setschoolname(String schoolname)//通过设置器来设置学校名称,班级名称
    {  this.schoolname=schoolname;   }

这个可以写成
public void setschoolname(string schoolname);
其他的几个也一样。
看你上面写了这么多,一个构造函数就可以实现的哟。对了,构造函数是不能被继承的哈。不过可以用base调用。
2013-03-22 16:04
momochong27
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-14
得分:0 
回复 3楼 丶XCC丶
public String tostring()
    {  
       String infor="super.tostring()+"学校地址"+location+";  "+"学生姓名"+studentname+";"+"  "+"学号:"+studentcode+";"+" "+"性别:"+studentsexy+"; "+"  "+"出生日期:"+studentbirthday+";"+"  "+"家庭地址:"+studentaddress;
       return infor;
     }
我编译的时候,总是提示这里有错误,还请您指点一下。多谢了。
2013-03-22 18:55
丶XCC丶
Rank: 2
等 级:论坛游民
帖 子:13
专家分:50
注 册:2013-3-20
得分:0 
都说是用abstract声明的类了,想要之前的错误都没有,要么把类名school前的abstract去掉,要么将
public String tostring()
     {  
        String infor="super.tostring()+"学校地址"+location+";  "+"学生姓名"+studentname+";"+"  "+"学号:"+studentcode+";"+" "+"性别:"+studentsexy+"; "+"  "+"出生日期:"+studentbirthday+";"+"  "+"家庭地址:"+studentaddress;
        return infor;
      }


改为
public String tostring();,在他的子类里面写方法体。
看你的水平,还是先把所有类名前的abstract去掉吧。
如果你是在练习和学习抽象类,就多找些抽象类的源代码看吧
2013-03-23 22:15
丶XCC丶
Rank: 2
等 级:论坛游民
帖 子:13
专家分:50
注 册:2013-3-20
得分:0 
public String tostring()
      {  
         String infor="super.tostring()+"学校地址"+location+";  "+"学生姓名"+studentname+";"+"  "+"学号:"+studentcode+";"+" "+"性别:"+studentsexy+"; "+"  "+"出生日期:"+studentbirthday+";"+"  "+"家庭地址:"+studentaddress;
         return infor;
       }



把student1类中以上代码段的红色引号去掉还有把student1当中的getlocation()的方法前的void换成string

运行结果为:

学校名称:重庆大学; 班级名称:计算机三班学校地址沙坪坝;  学生姓名王浩;  学号:95012; 性别:男;   出生日期:1976-07-14;  家庭地址:重庆市解放碑
学校名称:四川大学; 班级名称:机械系一班学生姓名:董洁; 学号:33012;性别:女;出生年月:1974-08-21;家庭地址:成都市区学校地址:成都市;  

之前的abstract说法有错,对不起哈,希望没有误导你。
abstract修饰的类中的方法可以有方法体,但是类不能被实例化,只能通过非抽象子类实例化。但是抽象方法只能在抽象类中。只有接口interface修饰的类中的方法只有定义。
2013-03-24 00:26
Kingbox_tang
Rank: 7Rank: 7Rank: 7
来 自:天津师范大学
等 级:黑侠
威 望:3
帖 子:146
专家分:677
注 册:2012-11-27
得分:1 
学习了。


旨在提高编程水平,学有所用,学有所成,学有所为。
2013-03-24 10:06
vispin
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-3-24
得分:1 
回复 3楼 丶XCC丶
亲你说的那个好像是接口啊不是抽象类的..
2013-03-24 23:30
vispin
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-3-24
得分:0 
String infor="学校地址"+location+";  "+"学生姓名"+studentname+";"+"  "+"学号:"+studentcode+"; "+"性别:"+studentsexy+";   "+"出生日期:"+studentbirthday+";  "+"家庭地址:"+studentaddress;


这样写一定对了..上面的好像都是错的
2013-03-24 23:32
vispin
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-3-24
得分:0 
String infor="学校地址"+location+";  "+"学生姓名"+studentname+";"+"  "+"学号:"+studentcode+"; "+"性别:"+studentsexy+";   "+"出生日期:"+studentbirthday+";  "+"家庭地址:"+studentaddress;


这样写一定对了..上面的好像都是错的
2013-03-24 23:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-401580-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.340725 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved