1. 程式人生 > >第二次考核

第二次考核

ear private 格式 子類 println args 構造方法 寫代碼 學習內容

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

第二次考核