面向对象的练习题

补充知识:成员方法的分类

1)按照返回值划分:有明确返回值方法,返回void类型方法

2)按照形式参数划分:无参方法,有参方法

1.定义一个没有返回值,没有参数的成员方法

class Function{
    //定义一个没有返回值,没有参数的成员方法
    public void fun1(){
        System.out.println("这是一个没有返回值,没有参数的方法");
    }
}

public class FunctionDemo {
    public static void main(String[] args) {
        //创建Function类的对象
        Function function = new Function();
        //没有返回值的方法,直接调用可以输出结果
        function.fun1();
    }
}

2.定义一个没有返回值,有参数的成员方法

class Function{
    //定义一个没有返回值,有参数的方法
    public void fun2(String name){
        System.out.println("这是没有返回值,有参数的方法;"+name);
    }
}

public class FunctionDemo {
    public static void main(String[] args) {
        //创建Function类的对象
        Function function = new Function();
        //没有返回值的方法,直接调用可以输出结果
        function.fun2("你好");
    }
}

3.定义一个有返回值,没有参数的成员方法

class Function{
    //定义一个有返回值,没有参数的方法
    public String fun3(){
        return "你好世界";
    }
}

public class FunctionDemo {
    public static void main(String[] args) {
        //创建Function类的对象
        Function function = new Function();

        //有返回值的方法,调用的时候,需要用一个变量接收返回值或者直接使用
        String s1 = function.fun3();
        System.out.println(s1);
    }
}

4.定义一个有返回值,有参数的成员方法

class Function{
    //定义一个有返回值,有参数的方法
    public String fun4(String s){
        return s+"你好";
    }
}

public class FunctionDemo {
    public static void main(String[] args) {
        //创建Function类的对象
        Function function = new Function();
        
        //有返回值的方法,调用的时候,需要用一个变量接收返回值或者直接使用
        String s2 = function.fun4("小宋");
        System.out.println(s2);
    }
}

面向对象练习题

1.定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试类Test,进行测试

方式1:虽然实现了两个数求和,但是值是固定的,没有灵活度

class Demo{
    int a = 10;
    int b = 20;
    public int sum(){
        return a+b;
    }
}

public class Test1 {
    public static void main(String[] args) {
        Demo demo = new Demo();
        int sum = demo.sum();
        System.out.println(sum);
    }
}

方式2:

class Demo{
    public int sum(int a,int b){
        return a+b;
    }
}

public class Test1 {
    public static void main(String[] args) {
        Demo demo = new Demo();
        int sum = demo.sum(10,20);
        System.out.println(sum);
    }
}

方式3:使用面向对象的思想

class Demo{
    private int a;
    private int b;

    Demo(int a,int b){
        this.a = a;
        this.b = b;
    }
    public int sum(){
        return a+b;
    }
}

public class Test1 {
    public static void main(String[] args) {
        Demo demo = new Demo(100,200);
        int sum = demo.sum();
        System.out.println(sum);
    }
}

注:这道题最好的解决方法是方式2。方式3虽然使用了面向对象的思想,但是忽略了一个问题,什么情况下使用面向对象?当成员变量是该类的相关属性的时候,可以去定义为成员变量。而这里的a,b仅仅表示的是一个方法中的两个参数,与我们的Demo类没关系 

2.定义一个长方形类,定义求周长和面积的方法,然后再定义一个测试类Test2,进行测试

class Rectangle {
    //由于长、宽都是用来描述长方形的,和类有关系,是该类的属性
    //所以定义成成员变量
    private int length;
    private int width;

    public Rectangle(int length, int width) {
        if(width<=length){
            this.length = length;
            this.width = width;
        }else{
            System.out.println("输入的数据不正确,请检查长宽的大小是否符合标准");
        }
    }

    //定义求长方形的周长的方法
    public int getGirth() {
        return 2 * (length + width);
    }

    //定义求长方形的面积的方法
    public int getArea() {
        return length * width;
    }
}

public class Test2 {
    public static void main(String[] args) {
        //使用构造方法赋值
        Rectangle rectangle = new Rectangle(5, 10);

        int girth = rectangle.getGirth();
        System.out.println("周长为:"+girth);
        int area = rectangle.getArea();
        System.out.println("面积为:"+area);
    }
}

 

3. 定义一个MyMath类,提供基本的加减乘除功能,然后进行测试

import java.util.Scanner;

class MyMath {
    private int num1;
    private int num2;

    public MyMath() {
    }

    public MyMath(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    //加法运算
    public int add() {
        return num1 + num2;
    }

    //减法运算
    public int sub() {
        return num1 - num2;
    }

    //乘法运算
    public int mul() {
        return num1 * num2;
    }

    //除法运算
    public double div() {
        return (num1 * 1.0) / num2;
    }
}

public class MyMathDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数据:");
        int number1 = sc.nextInt();
        System.out.println("请输入第二个数据:");
        int number2 = sc.nextInt();
        MyMath myMath = new MyMath(number1, number2);
        System.out.println("两数之和为:" + myMath.add());
        System.out.println("两数之差为:" + myMath.sub());
        System.out.println("两数之积为:" + myMath.mul());
        System.out.println("两数之商为:" + myMath.div());
    }
}

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

+7_big data

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值