目录
第一题
思路分析:
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++);
}
}