第二次考核
7-1 學生類-構造函數
定義一個有關學生的Student類,內含類成員變量: String name、String sex、int age,所有的變量必須為私有(private)。
1.編寫有參構造函數:
能對name,sex,age賦值。
2.覆蓋toString函數:
按照格式:類名 [name=, sex=, age=]輸出。使用idea自動生成,然後在修改成該輸出格式
3.main方法中
輸入1行name age sex , 調用上面的有參構造函數新建對象。
輸入樣例:
tom 15 male
輸出樣例:
Student [name=‘tom‘, sex=‘male‘, age=15]
import java.util.Scanner; class Student { private String name; private String sex; private int age; public Student() { this.name = "tom"; this.sex = "male"; this.age = 15; } public void toString(String n, int a, String s) { this.name = n;this.sex = s; this.age = a; System.out.println("Student [name=‘" + this.name + "‘, sex=‘" + this.sex + "‘, age=" + this.age + "]"); } } public class StudentClass { public static void main(String[] args) { Scanner reader = new Scanner(System.in); String n = reader.next();int a = reader.nextInt(); String s = reader.next(); Student ww = new Student(); ww.toString(n, a, s); reader.close(); } }
程序設計思路:先引入函數,再定義類,之後定義構造方法,並按格式輸出,最後在Main函數中調用子類。
知識點:綜合運用類與對象、子類與繼承
運行結果如下:
7-2 定義類
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a,b,c,d,e; a = in.nextInt(); b = in.nextInt(); c = in.nextInt(); d = in.nextInt(); e = in.nextInt(); RR rr = new RR(); double dd = rr.fun(a,b,c,d,e); System.out.printf("%.2f",dd); } } class RR { 31 double z; 32 33 public double fun(int a, int b, int c, int d, int e) { 34 z = (a + b + c + d + e) / 5; 35 return z; 36 }
程序設計思路:本題只需補全RR類,先定義RR類,return傳返回值,編寫平均數式子,輸出內容平均值。
知識點:參數傳值
運行結果如下:
7-3 橫平豎直
程序填空題。根據題目要求完善下面的代碼。請提交完整代碼。 一個木塊如果高度比寬度大,我們說它是豎著放的,否則我們說它是平放的。 讀入一個木塊的高度和寬度。如果它是平放的,則輸出A,否則輸出B。
import java.util.Scanner; public class HorizontalAndVertical { public static void main(String[] args) { Scanner in = new Scanner(System.in); int height, width; char status; height = in.nextInt(); width = in.nextInt(); Board board = new Board(height, width); status = board.getStatus(); System.out.print(status); } } class Board { int height, width; public Board(int height, int width) { this.height = height; this.width = width; } public char getStatus() { if (height <= width) { return status(1); } else { return status(1.0); } } public char status(double rate) { return ‘B‘; } public char status(int rate) { return ‘A‘; } }
程序設計思路:此題是填寫代碼題,首先定義了重載方法,方法名相同,但參數類型不同。將返回值設為A和B,方法類型為char。
如上所示,只要return ‘返回值’,即可完成。
知識點:方法重載,參數傳值
運行結果如下:
7-4 程序改錯題
public class ProgramErrorCorrection { public static void main(String[] args) { // TODO Auto-generated method stub Animal animal = new Dog(); animal.shout(); ((Dog) animal).run(); } } class Animal { void shout() { System.out.println("animal shout!"); } } class Dog extends Animal { void shout() { super.shout(); System.out.println("wangwang……"); } void run() { System.out.println("Dog is running"); } }
程序設計思路:這道題是修改題,Animal是Dog的對象,即不能操作子類新增的成員變量,也不能調用子類新增的方法;
需要將對象轉換到一個子類對象,該子類對象具備了子類所有的屬性和功能。
知識點:繼承
運行結果如下:
代碼詳見“碼雲”
——————https://gitee.com/girlchujiu/codes——————
初九girl
學習內容 | 代碼(行) | 博客(字) |
類與對象、子類與繼承 | 300 | 500 |
第二次考核