第二次作业

学习进度表:


代码行数(新增/累积)博客字数(新增/累积)学习时间(新增/累积)重要成长
目标 5000行 30000 400小时 精通Java程序设计
第十一周40/40 0/0 100/100 20/20 学习了结构化程序设计
第十二周100/140 0/0 220/320 18/38 学习了面向对象
第十三周200/340 500/500 150/470 22/60 学习了类的封装性,修饰词…
第十四周

解题思路:

  • 根据题意一共需要创建六个类及一个主类
  • 类Airplane实现了Flyer接口
  • 类subClass1与SuperClass有继承的关系
  • 剩下的类根据题意依次定义,以下是具体代码以及详细注释.

  接口Flyer:

1 package com.cvit;                  //包的封装,将接口 package 封装到 com/cvit 文件夹中
2  public interface Flyer{            //定义接口 Flyer  声明 Flyer 接口为公共类
3     public void takeOff();           //创建接口的应用方法 takeoff,接口方法与抽象方法类似,没有方法体,故在最后直接加分号即可
4     public void land();             //创建接口的应用方法 land
5     public void fly();              //a创建接口的应用方法 fly
6 }

 

  类Ariplane:

 1 package com.cvit;                            
 2 public class Airplane implements Flyer{             //定义 Airplane 类,实现 Flyer 接口,声明它是公共类
 3   public void takeOff(){                    //定义 takeoff 公共方法
 4    System.out.println("airplane takeOff");         //打印输出语句:airplane  takeOff
 5 }
 6  public void land(){                       //创建 landf 公共方法
 7    System.out.println("airplane land");           //打印输出语句:airplane land
 8 }
 9    public void fly(){                      //创建 fly 公共方法
10   System.out.println("airplane fly");            //打印输出语句:airplane fly
11 }
12 }

 

  类SuperClass:

 1 package com.cvit;                              //包的封装将类 SuperClass 类封装进 com/cvit 文件夹中
 2 class SuperClass {                            //创建类 SuperClass
 4   public int x;                             //声明公共整型变量 x  
 6   public SuperClass(){                         //定义构造方法 SuperClass,构造方法用来初始化类,当一个类进行实例化对象时,会调用构造方法
 7     x=4;                                  //将变量 x 赋值为4
 8     System.out.println("in superClass: x="+x);          //打印输出语句: in superClass x= 并且输出 x 值
 9 }
10   public void aMethod(){                           //定义方法 aMedthod ,声明其为公共类     
11     System.out.println("in superClass.aMethod()");        //打印输出语句:in superClass.aMerhod
12 }
13 }

 

 

 

  类SubClass1:

 1 class SubClass1 extends SuperClass {                           // 创建类 subClass1 并继承类 SuperClass,继承父类中的成员变量和方法
 2   public int x;                                     //声明公开整形变量 x
 3   public SubClass1(){                                 // 定义构造方法 SubClass1,构造方法用来初始化类,当类进行实体化时,会先调用构造方法
 4     x=6;                                        //将变量 x 赋值为 6
 5     System.out.println("in subClass: x="+x);                 //打印输出输出语句:in subClass x=  ,并且输出 x 的值
 6 }
 7    public void aMethod(){                                  //定义 aMethod 方法
 8     System.out.println("in SubClass1.aMethod()");                 //打印输出语句: in SubClass1.aMethod
 9 
10     System.out.println("super.x = " +super.x+", sub.x=%d" +this.x);    //输出语句输出父类的成员域和本类的成员域,利用语句super调用出父类成员域,用this语句调用类自己的类的成员域
11 
12 }
13    public int aMethod(int a,int b){                         //定义方法 aMethod   参数列表为  int a  int  b  
14      return a+b;                                     //将 a 与 b 的和返回到方法中
15 }
16 }

 

  类SubClass2:

 1 package com.cvit;
 2 public class SubClass3{                     //定义类 SubClass 声明公共类
 3    public void aMethod(){                  //定义输出方法 aMethod
 4     System.out.println("in SubClass3.aMethod()");  //打印输出语句: in SubClass3.aMethod()
5 6 7 } 8   public int aMethod(int a,int b){       //定义方法 aMethod( int a,int b)(参数列表) 9     return a+b;         // 将 a 与 b 的和返回方法中 10 } 11 } 12 13

 

 

 

  类SubClass3:与  类SubClass2:思路相同

 

  主类Main

 1 package com.cvit;
 2 public class Main    {                             //创建主类  Main
 3   public static void chooseClass(SubClass2 sub2){          //创建静态方法 chooseClass()
 4 
 5 }
 6   public static void chooseClass(SubClass3 sub3){         //创建静态方法  chooseClass()
 7 
 8 }
 9   public static void main(String args[]){             //主程序入口,
10     int x=7;                                //定义整型变量  x  
11     Airplane airplane=new Airplane();               //实例化类  Airplane  的对象  airplane
12     airplane.takeOff();                       //调用  Airplane  中的  takeOff()  方法
13     SubClass1 sub1=new SubClass1();                 //实例化类  SubClass  的对象  sub1
14     sub1.aMethod();                           //调用  SubClass1  中的  aMethod() 方法
15     x=sub1.aMethod(x,x);                        //调用  SubClass1  类的  aMethod() 方法   将参数传进方法  aMethod() 方法中,将返回值传给x
16 
17     airplane.fly();                           //调用  Airplane  中的  fly()  方法
18     SubClass2 sub2=new SubClass2() ;                //实例化类  SubClass2  的对象  sub2 
19     SubClass3 sub3=new SubClass3();                //实例化类  SubClass3  的对象  sub3 
20     Main.chooseClass(sub2);                       //调用主类中自己的静态方法
21     x=sub2.aMethod(x,x);                       //调用  SubClass2  类的  aMethod()  方法   将参数传进方法  aMethod()  方法中,将返回值传给x 
22     Main.chooseClass(sub3);                       //调用主类中自己的静态方法
23     x=sub2.aMethod(x,x);                      //调用  SubClass3  类中的  aMethod()  方法   将参数传进方法  aMethod()  方法中,将返回值传给x
24 
25     airplane.fly();                          //调用  Airplane  中   fly()  方法
26
27 
28 
29 }

 

运行成果截图

 

posted @ 2017-11-17 20:49  Even_p  阅读(196)  评论(1)    收藏  举报