第二次作业
代码行数/累积 | 博客字数/累积 | 学习时间/累积 | |
目标 | 1000 | 10000 | 100 |
第十一周 | 50/50 | 0/0 | 3/3 |
第十二周 | 100/150 | 0/0 | 7/10 |
第十三周 | 160/310 | 10/20 |
前6个都是定义,所以静下来一个一个打
打到主函数的时候,一行一行看,慢慢打
主要用到几个知识点;
定义类 定义接口 继承 创建对象 定义有无返回值的方法 定义构造方法 定义静态方法 调用 封装方法
进行编译的时候出现了错误,主要有几点:
1.在编译是没有加 -d . 所以就没有生成文件夹 没打包成功 导致出现了 找不到类/符号的错误
2.再定义有返回值的时候忘记写返回值类型了
3.定义静态方法是没加方法体
1 1. 创建接口Flyer,封装在com.cvit包中,包含三个方法 2 3 无返回值 takeOff() 4 无返回值 land() 5 无返回值 fly() 6 package com.cvit; 封装方法 关键字package 7 interface Flyer 8 { 9 public void takeOff(); 定义三个方法 因为接口默认是抽象的 所以没有方法体 要在子类体现 10 public void land(); 11 public void fly(); 12 } 13 2. 创建类Airplane,封装在com.cvit包中,实现Flyer接口 14 15 无返回值 takeOff(),打印输出第一行"----------------",第二行"airplane takeOff" 16 无返回值 land(),打印输出第一行"----------------",第二行"airplane land" 17 无返回值 fly(),打印输出第一行"----------------",第二行"airplane fly" 18 class Airplane implements Flyer 运用了implements关键字 实现了接口继承 19 { 20 public void takeOff() 实现了接口方法 添加了方法体 21 { 22 System.out.println("------------"); 输出语句 23 System.out.println("airplane takeOff"); 24 .. 25 .. 26 } 27 3. 创建类SuperClass,封装在com.cvit包中 28 29 声明整型变量x, 30 构造方法实现以下功能,为x赋值为4,打印输出"in superClass : x = [x的值]" 31 定义方法aMethod(),打印输出"in superClass.aMethod()" 32 class SuperClass 定义类 关键字为class 33 { 34 public int x; 35 public SuperClass() 定义构造方法 构造方法与类名要相同 36 { 37 x=4; 38 System.out.println("in superClass:x="+x); 39 } 40 public void aMethod() 定义普通方法 注意有没有返回值 如果没有用void如果有要表明返回值类型 如:int,double等等 41 { 42 System.out.println("in superClass.aMethod()"); 43 } 44 } 45 4. 创建类SubClass1,封装在com.cvit包中 46 47 声明整型变量x, 48 构造方法实现以下功能,为x赋值为6,打印输出"in subClass : x = [x的值]" 49 定义方法aMethod() 50 调用父类的构造方法; 51 打印输出"in SubClass1.aMethod()"; 52 打印输出"super.x = [父类中x的值], sub.x=[子类中x的值]"; 53 定义方法aMethod(int a, int b),返回a+b的值 54 55 56 class SubClass1 extends SuperClass 继承主要关键字extends 57 { 58 public int x; 59 public SubClass1() 定义构造方法 构造方法与类名要相同 60 { 61 x=6; 62 System.out.println("in subClass:x="+x); 63 } 64 public void aMethod() 定义普通方法 没有返回值 65 { 66 super.aMethod(); 67 System.out.println("super.x="+super.x+"sub.x="+x); 68 } 69 public int aMethod(int a,int b) 定义普通方法 有返回值 用到return 在调用时给值 70 { 71 int s=a+b; 72 return s; 73 } 74 } 75 5. 创建类SubClass2,封装在com.cvit包中 76 77 定义方法aMethod(),打印输出"in SubClass2.aMethod()" 78 定义方法aMethod(int a, int b),返回a+b的值 79 class SubClass2 定义类 80 { 81 public void aMethod() 定义方法 82 { 83 System.out.println("in SubClass2.aMethod()"); 84 } 85 public int aMethod(int a ,int b) 定义方法 有返回值 86 { 87 int s=a+b; 88 return s; 89 } 90 } 91 6. 创建类SubClass3,封装在com.cvit包中 92 93 定义方法aMethod(),打印输出"in SubClass3.aMethod()" 94 定义方法aMethod(int a, int b),返回a+b的值 95 96 97 class SubClass3 定义类 98 { 99 public void aMethod() 定义方法 100 { 101 System.out.println("in SubClass3.aMethod()"); 102 } 103 public int aMethod(int a ,int b) 定义方法 有返回值 104 { 105 int s=a+b; 106 return s; 107 } 108 } 109 7. 创建主类Main,封装在com.cvit包中 110 111 定义返回值为空的静态方法chooseClass(SubClass2 sub2) 112 定义返回值为空的静态方法chooseClass(SubClass3 sub3) 113 程序的入口方法实现 114 定义整型变量x,赋值为7; 115 创建Airplane类的对象airplane; 116 调用Airplane类的takeOff方法; 117 创建SubClass1类的对象sub1; 118 调用SubClass1类的aMethod方法; 119 调用SubClass1类的aMethod方法,传值(x, x),将得到的结果赋值给x; 120 调用Airplane类的fly方法; 121 创建SubClass2类的对象sub2; 122 创建SubClass3类的对象sub3; 123 调用chooseClass方法,将sub2作为参数传入; 124 调用SubClass2类的aMethod方法,传值(x, x),将得到的结果赋值给x; 125 调用chooseClass方法,将sub3作为参数传入; 126 调用SubClass3类的aMethod方法,传值(x, x),将得到的结果赋值给x; 127 调用Airplane类的fly方法; 128 129 130 public class Main 定义类 131 { 132 public static void chooseClass(SubClass2 sub2) 定义静态方法 用static 133 { 134 135 } 136 public static void chooseClass(SubClass3 sub3) 137 { 138 139 } 140 public static void main (String args[]) 程序的入口方法实现 141 { 142 int x=7; 143 Airplane airplane=new Airplane(); 为类创建对象 类名 对象名=new类名() 144 airplane.takeOff(); 调用类的方法 对象名.方法名 145 SubClass1 sub1=new SubClass1(); 146 sub1.aMethod(); 147 int a =sub1.aMethod(x,x); 因为有返回值所以要定义一个a来接受这个返回值 148 System.out.println(a); 149 airplane.fly(); 150 SubClass2 sub2=new SubClass2(); 151 SubClass3 sub3=new SubClass3(); 152 chooseClass(sub2); 调用静态方法 传入对象 153 int b =sub2.aMethod(x,x); 154 System.out.println(b); 155 chooseClass(sub3); 156 int c =sub3.aMethod(x,x); 157 System.out.println(c); 158 airplane.fly(); 159 } 160 }
![](https://images2017.cnblogs.com/blog/1272607/201711/1272607-20171117194310734-2106289369.png)