第二次作业
学习进度表:
|
解题思路:
- 根据题意一共需要创建六个类及一个主类
- 类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 }
运行成果截图


浙公网安备 33010602011771号