1. 程式人生 > >Java習題——方法與構造方法練習(一)

Java習題——方法與構造方法練習(一)

【練習題】01.類的成員變數:

設計一個立方體類Box,定義三個屬性,分別是長,寬,高。定義二個方法,分別計算並輸出立方體的體積和表面積

//設計一個立方體類Box,定義三個屬性,分別是長,寬,高。定義二個方法,分別計算並輸出立方體的體積和表面積
package cn.edu.nefu1;

import java.util.Scanner;

public class Box {
    double length;
    double width;
    double height;
    //求體積
    double volume(double length,double width,double height){
        return length*width*height;
    }
    //求表面積
    double area(double length,double width,double height){
        return 2*(length*width+length*height+width*height);
    }

    public static void main(String[] args) {
        Box box = new Box();         //例項化一個物件
        System.out.println("請輸入該立方體的長、寬、高:");
        Scanner sc = new Scanner(System.in);
        box.length = sc.nextDouble();
        box.width = sc.nextDouble();
        box.height = sc.nextDouble();
        System.out.println("立方體的體積為:"+box.volume(box.length,box.width,box.height)); //呼叫方法
        System.out.println("立方體的表面積為:"+box.area(box.length,box.width,box.height));

    }
}

【練習題】02.類的成員變數:

請定義一個交通工具(Vehicle)的類,其中有:

屬性:速度(speed),距離(distance)等等

方法:移動(move(int s)),設定速度(setSpeed(int speed)),加速speedUp(),減速speedDown()等等.

最後在測試類Vehicle中的main()中例項化一個交通工具物件,並通過方法給它初始化speed, distance的值,並且通過打印出來。另外,呼叫加速,減速的方法對速度進行改變。呼叫 move方法改變distance,並輸出已經移動的距離

//請定義一個交通工具(Vehicle)的類,其中有:
//        屬性:速度(speed),距離(distance)等等
//        方法:移動(move(int s)),設定速度(setSpeed(int speed)),加速speedUp(),減速speedDown()等等.
//        最後在測試類Vehicle中的main()中例項化一個交通工具物件,並通過方法給它初始化speed, distance的值,
//        並且通過打印出來。另外,呼叫加速,減速的方法對速度進行改變。呼叫 move方法改變distance,並輸出已經移動的距離
package cn.edu.nefu1;

public class Vehicle {
    int speed;
    int distance;

    //構造方法
    Vehicle(int speed,int distance){
        this.distance = distance;
        this.speed = speed;
    }
    //移動
    void move(int s){
        distance += s;
        System.out.println("此時距離為:"+distance);
    }
    //設定速度
    void setSpeed(int speed){
        System.out.println("此時速度為"+speed);
    }
    //加速
    void speedUp(){
        speed += 1;
        System.out.println("此時速度為"+speed);
    }
    //減速
    void speedDown(){
        speed -= 1;
        System.out.println("此時速度為"+speed);
    }

    public static void main(String[] args) {
        Vehicle car = new Vehicle(20,100);//例項化一個物件
        car.move(100);
        car.setSpeed(20);
        car.speedDown();
        car.speedUp();
        car.speedUp();
    }

}

【練習題】03.類的成員變數與方法

定義一個Hero類

屬性有  power,name,分別代表體力值和英雄的名子,體力值預設為100;

方法有  

1.void go(); //行走的方法,如果體力值為0,則輸出不能行走,此英雄已死亡的資訊

2.void eat(int n); //吃的方法,引數是補充的血量,將 n的值加到屬性power中,power的值最大為100,

3.void hurt();//每受到一次傷害,體力值-10,體力值最小不能小於0

編寫測試類,來測試以上程式碼

/*定義一個Hero類
	屬性有  power,name,分別代表體力值和英雄的名子,體力值預設為100;
	方法有
	1.void go(); //行走的方法,如果體力值為0,則輸出不能行走,此英雄已死亡的資訊
    2.void eat(int n); //吃的方法,引數是補充的血量,將 n的值加到屬性power中,power的值最大為100,
	3.void hurt();//每受到一次傷害,體力值-10,體力值最小不能小於0
編寫測試類,來測試以上程式碼*/
package cn.edu.nefu1;

public class Hero {
    int power=100;
    String name;
    //行走
    void go(){
        if(power == 0){
            System.out.println("不能行走,英雄"+name+"已死亡。");
        }else {
            System.out.println("英雄"+name+"向前行走。");
        }
    }
    //吃
    void eat(int n){
        power += n;
        if(power >= 100){
            power = 100;
        }
        System.out.println("英雄"+name+"血量為:"+power);
    }
    //傷害
    void hurt(){
        power -=10;
        if(power < 0){
            power = 0;
        }
        System.out.println("英雄"+name+"血量為:"+power);
    }

}
package cn.edu.nefu1;

import java.util.Scanner;

public class HeroTest {
    public static void main(String[] args) {
        Hero hero = new Hero();
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入英雄的名字:");
        hero.name = sc.nextLine();
        hero.go();
        hero.hurt();
        hero.hurt();
        hero.hurt();
        hero.hurt();
        hero.go();
        hero.eat(80);

    }
}

【練習題】04.方法的引數及返回值

定義一個計算器;它的功能有

加,減,乘,除,累加,階乘

求平方,求次方,判斷一個數是否為素數;boolean(int),並寫測試類來測試這個方法

/*定義一個計算器;它的功能有
		加,減,乘,除,累加,階乘
		求平方,求次方,判斷一個數是否為素數;boolean(int),並寫測試類來測試這個方法*/
package cn.edu.nefu1;

public class Calculator {
    //加
    void add(double a,double b){
        System.out.println("兩個數的和為:"+(a+b));
    }
    //減
    void minus(double a,double b){
        System.out.println("兩個數的差為:"+(a-b));
    }
    //乘
    void multiply(double a,double b){
        System.out.println("兩個數的積為:"+(a*b));
    }
    //除
    void divide(double a,double b){
        System.out.println("兩個數的商為:"+(a/b));
    }
    //累加
    void accumulate(int n){
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        System.out.println("累加結果為:"+sum);
    }
    //階乘
    void factioral(int n){
        int sum = 1;
        for (int i = 1; i <= n; i++) {
            sum *= i;
        }
        System.out.println(n+"的階乘為:"+sum);
    }
    //平方
    void square(double a){
        System.out.println(a+"的平方為:"+a*a);
    }
    //次方    a的n次冪
    void power(double a,int n){
        int sum = 1;
        for (int i = 1; i <= n; i++) {
            sum *= a;
        }
        System.out.println(a+"的"+n+"次冪為:"+sum);
    }
    //判斷是否為素數
    void isPrimeNumber(int n){
        boolean isPrime = true;
        if(n == 2){
            System.out.println(n+"是素數");
        }else {
            for (int i = 2; i < n; i++) {
                if (n % i == 0) {
                    isPrime = false;
                }
            }
            if (isPrime == true) {
                System.out.println(n+"是素數");
            } else {
                System.out.println(n+"不是素數");
            }
        }

    }
}
package cn.edu.nefu1;
//測試類
public class CalculatorTest {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        calculator.add(4,5);
        calculator.minus(4,5);
        calculator.multiply(4,5);
        calculator.divide(4,5);
        calculator.accumulate(4);
        calculator.factioral(4);
        calculator.power(4,5);
        calculator.square(4);
        calculator.isPrimeNumber(5);
    }
}

【練習題】05.構造方法:

編寫Java程式,用於顯示人的姓名和年齡。

定義一個人類(Person),該類中應該有兩個私有屬性,姓名(name)和年齡(age)。定義構造方法,用來初始化資料成員。再定義顯示(display)方法,將姓名和年齡打印出來。

在main方法中建立人類的例項,然後將資訊顯示。

/*編寫Java程式,用於顯示人的姓名和年齡。
定義一個人類(Person),該類中應該有兩個私有屬性,姓名(name)和年齡(age)。定義構造方法,用來初始化資料成員。
再定義顯示(display)方法,將姓名和年齡打印出來。
在main方法中建立人類的例項,然後將資訊顯示。*/
package cn.edu.nefu1;

public class Person {
    String name;
    int age;
    //構造方法
    Person(String name,int age){
        this.age = age;
        this.name = name;
        display();
    }
    //顯示方法
    void display(){
        System.out.println(name+"的年齡是:"+age);
    }

    //主方法
    public static void main(String[] args) {
        Person person1 = new Person("李明",20);
        Person person2 = new Person("洪宇",23);
    }

}

【練習題】06.get方法和set方法

定義一個類,該類有一個成員變數,通過構造方法將其進行賦初值,並提供該成員的getXXX()和setXXX()方法

提示:假設有String name;則有

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

/*定義一個類,該類有一個成員變數,通過構造方法將其進行賦初值,並提供該成員的getXXX()和setXXX()方法
提示:假設有String name;則有
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}*/
package cn.edu.nefu1;

public class GetSet {
    String name;
    GetSet(String name){
        this.name = name;
    }
    GetSet(){

    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }

    public static void main(String[] args) {
        GetSet per = new GetSet("楊洋");
        System.out.println(per.getName());
        per.setName("黃渤");
        System.out.println(per.getName());

    }

}