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());

    }

}

猜你喜欢

转载自blog.csdn.net/sunshinecollege/article/details/85368904