面向对象练习题(2)

目录

第一题

第二题

第三题

第四题

第五题


第一题

思路分析:

1.根据题目的要求,我们编写一个方法,完成对数组的拷贝,该方法的形参是一个数组,用于接受传入的数组

2.在该方法中,我们创建一个新的数组,数组的长度就和我们传入的数组长度一致就可以

3.使用循环进行拷贝,把旧数组中的内容,拷贝到新数组去,在循环结束后,我们的数组也拷贝完成,此时,我们让旧数组,指向新数组,这样原来数组的空间,就会因为没有任何东西去指向,就会被当作垃圾回收,至此我们的拷贝功能就完成了。

package com.objectOriented.homework;

public class homework04 {
    public static void main(String[] args) {
        // 4.编写类A03,实现数组的复制功能copyArr,
        // 输入旧数组,
        // 返回一个新数组,元素和旧数组一样

        int arr[] = {1, 2, 3, 4, 5};
        A03 a = new A03();
        a.copy(arr);
    }
}

class A03 {
    public void copy(int arr[]) {
        int arrnew[] = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            arrnew[i] = arr[i];
        }

        arr = arrnew;

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

第二题

思路分析:

1.首先我们要知道,园的面积公式,和周长公式

2.在算面积的时候,不要直接使用3.14使用JavaMath类中的PI实现。

package com.objectOriented.homework;

public class homework05 {
    public static void main(String[] args) {
        // 5.定义一个圆类Circle,定义属性:半径,
        // 提供显示圆周长功能的方法,提供显示圆面积的方法

        Circle a = new Circle(3);
        System.out.println(a.C());
        System.out.println(a.S());
    }
}

class Circle {
    double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double C() {
        return 2 * Math.PI * radius;//不能直接定义PI实在Math.PI这样子才对

    }

    public double S() {
        return Math.PI * radius * radius;

    }


}

第三题

思路分析:

1.这是一个简易的计算机

2.在处理除法的时候,我们要注意,如果除数为0,我们要做出提示,因此在编写除法的方法的时候,我们的返回类型就应该是一个包装类Double,这样我们一进到这个方法,就去判断,如果除数为0那么,直接返回null.。最后在调用该方法的时候,在判断一些,只有返回值不为null我们才输出。

package com.objectOriented.homework;

public class homework06 {
    public static void main(String[] args) {
        // 6.编程创建一个Cale计算类,在其中定义2个变量表示两个操作数,
        // 定义四个方法实现求和、差、乘、商(要求除数为0的话,要提示)并创建两个对象,分别测试
        Cale cale = new Cale(2, 2);
        System.out.println("和=" + cale.add());
        System.out.println("差=" + cale.minus());
        System.out.println("乘=" + cale.mul());
        Double res = cale.div();
        if (res != null) {
            System.out.println("商=" + res);
        }
    }
}

class Cale {
    double a;
    double b;

    public Cale(double a, double b) {
        this.a = a;
        this.b = b;
    }

    public double add() {
        return a + b;
    }

    public double minus() {
        return a - b;
    }

    public double mul() {
        return a * b;
    }

    public Double div() {
        //题目明确要求如果除数为0要提示所以定义成Double类如果正常定义成double要返回null时会报错
        if (b == 0) {//除数为0的情况
            System.out.println("不能为0");
            return null;
        } else {
            return a / b;
        }

    }
}

第四题

思路分析:

1.这里运用到了构造器的使用,使用构造器进行初始化,然后输出信息即可,比较简单

package com.objectOriented.homework;

public class homework07 {
    public static void main(String[] args) {
        // 7.设计一个Dog类,有名字、颜色和年龄属性,定义输出方法
        // show(显示其信息并创建对象,进行测试、 【提示this.属性】

        Dog a = new Dog("小明", "红色", 10);
        a.show();
    }
}

class Dog {
    String name;
    String color;
    int age;

    public Dog(String name, String color, int age) {
        this.name = name;
        this.color = color;
        this.age = age;
    }

    public void show() {
        System.out.println("名字为" + this.name + "颜色为" + this.color + "年龄为" + this.age);
    }
}

第五题

思路分析:

1.new Test().count1();是匿名对象,匿名对象使用一次后,就会销毁,因此第一个输出的内容就是10

2.Test t1 = new Test();

这里新创建了一个对象,在第一次去调用的时候,因为count2中并没有count属性,且count++是后++,后++的特点是先输出后自增,所以第一次调用count2方法的时候,输出的是9,在输出完之后会,count就开始自增,所以第二吃输出的时候就变成了10

package com.objectOriented.homework;

public class homework08 {
    public static void main(String args[]) {
        //1.  new Test()	是匿名对象, 匿名对象使用后,就不能使用
        //2.  new Test().count1() 创建好匿名对象后, 就调用count1()
        new Test().count1();
        //因为 new Test()	是匿名对象  所以在使用之后就不能在使用 了
        //所以在执行到Test t1= new Test();时Test的属性并没有被更改
        //因为这个创建了一个新的对象,指向的是 一块新的空间
        //所以在第一次调用t1.count2();是得到的值是9
        Test t1 = new Test();
        t1.count2();
        t1.count2();
    }

}

class Test {
    int count = 9; //属性

    public void count1() { //Test类的成员方法
        count = 10;//这个count就是属性  改成 10
        System.out.println("count1=" + count); //10
    }

    public void count2() {  //Test类的成员方法
        System.out.println("count1=" + count++);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值