本章作业
-
编写类A01,定义方法max,实现求某个double数组的最大值,并返回Homework01.java
public class Homework01{ public static void main(String[] args){ A01 a = new A01(); double[] arr = {23.5, 100, 98.6, 107.5}; if (arr != null) { System.out.println("max:" + a.max(arr)); }else{ System.out.println("arr的输入有误"); } } } /*编写类A01,定义方法max,实现求某个double数组的最大值,并返回Homework01.java*/ class A01{ public Double max(double[] arr){ if (arr != null && arr.length > 0) { double max = arr[0]; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } else { return null; } } }
-
编写类A02,定义方法find,实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1 . Homework02.java
public class Homework02{ public static void main(String[] args){ A02 a = new A02(); char[] arr = {'a', 'b', 'c'}; System.out.println("idx:" + a.find(arr, 'x')); } } /*编写类A02,定义方法find,实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1 . Homework02.java*/ class A02{ public int find(char[] arr, char target){ for (int i = 0; i < arr.length; i++) { if (target == arr[i]) { return i; } } return -1; } }
-
编写类Book,定义方法updatePrice, 实现更改某本书的价格,具体:如果价格>150,则更改为150,如果价格> 100,更改为100,否则不变Homework03.java
public class Homework03{ public static void main(String[] args){ Book book = new Book(); System.out.println("price:" + book.updatePrice(170)); } } /*编写类Book,定义方法updatePrice, 实现更改某本书的价格,具体:如果价格>150,则更改为150,如果价格> 100,更改为100,否则不变Homework03.java*/ class Book{ public int updatePrice(int price){ if (price >= 150) { return 150; }else if(price >= 100){ return 100; }else{ return price; } } }
-
编写类A03,实现数组的复制功能copyArr,输入旧数组,返回一个新数组,元素和旧数组一样Homework04.java
public class Homework04{ public static void main(String[] args){ A03 a = new A03(); int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = a.copyArr(arr1); System.out.println("arr2:"); for (int i = 0; i < arr1.length; i++) { System.out.print(arr2[i] + " "); } } } /*编写类A03,实现数组的复制功能copyArr,输入旧数组,返回一个新数组,元素和旧数组一样Homework04.java*/ class A03{ public int[] copyArr(int[] arr){ int[] newArr = new int[arr.length]; for (int i = 0; i < arr.length; i++) { newArr[i] = arr[i]; } return newArr; } }
-
定义一个圆类Circle,定义属性:半径,提供显示圆周长功能的方法,提供显示圆面积的方法Homework05.java
public class Homework05{ public static void main(String[] args){ Circle circle = new Circle(5); System.out.println("perimeter: " + circle.perimeter() + "\tarea: " + circle.area()); } } /*定义一个圆类Circle,定义属性:半径,提供显示圆周长功能的方法,提供显示圆面积的方法Homework05.java*/ class Circle{ double radius; public Circle(double radius){ this.radius = radius; } public double perimeter(){ return 2 * Math.PI * radius; } public double area(){ return Math.PI * radius * radius; } }
-
编程创建一个Cale计算类, 在其中定义2个变量表示两个操作数,定义四个方法实现求和、差、乘、商(要求除数为0的话,要提示)并创建两个对象,分别测试Homework06.java
public class Homework06{ public static void main(String[] args){ Calc cal = new Calc(6, 3); System.out.println(cal.add()); System.out.println(cal.subtract()); System.out.println(cal.multiply()); System.out.println(cal.divide()); } } /*编程创建一个Calc计算类, 在其中定义2个变量表示两个操作数,定义四个方法实现求和、差、乘、商(要求除数为0的话,要提示)并创建两个对象,分别测试Homework06.java*/ class Calc{ int op1; int op2; public Calc(int op1, int op2){ this.op1 = op1; this.op2 = op2; } //+ public int add(){ return op1 + op2; } //- public int subtract(){ return op1 - op2; } //x public int multiply(){ return op1 * op2; } /// public int divide(){ if (op2 == 0) { System.out.println("您输入的除数非法"); return 0; }else{ return op1 / op2; } } }
-
设计一个Dog类,有名字、颜色和年龄属性,定义输出方法show()显示其信息。并创建对象,进行测试、[提示 this.属性]Homework07.java
public class Homework07{ public static void main(String[] args){ Dog dog = new Dog("goody", "yellow", 5); dog.show(); } } /*设计一个Dog类,有名字、颜色和年龄属性,定义输出方法show()显示其信息。并创建对象,进行测试、[提示 this.属性]Homework07.java*/ 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("name: " + name); System.out.println("color: " + color); System.out.println("age: " + age); } }
-
给定一个Java程序的代码如下所示,则编译运行后,输出结果是()
new Test().count1();是匿名对象,只能执行一次。这里输出10; 上面的匿名对象输出后即销毁。 创建了新的对象,名字是t1 t1.count2();先输出9,再自增 t1.count2();先输出上面自增后的10,再自增
-
定义Music类,里面有音乐名name、音乐时长times属性,并有播放play功能和返回本身属性信息的功能方法getInfo. Homework09.java
public class Homework09{ public static void main(String[] args){ Music music = new Music("May rain", "02:55"); music.play(); music.getInfo(); } } /*定义Music类,里面有音乐名name、音乐时长times属性,并有播放play功能和返回本身属性信息的功能方法getInfo. Homework09.java*/ class Music{ String name; String times; public Music(String name, String times){ this.name = name; this.times = times; } public void play(){ System.out.println("play now."); } public void getInfo(){ System.out.println("name: " + name); System.out.println("times: " + times); } }
-
试写出以下代码的运行结果() // Homework10.java
d2.m();i先输出给j,j=100,i再自增成101。所以 i = 101 j = 100 101 101
-
在测试方法中,调用method方法,代码如下,编译正确,试写出method方法的定义形式,调用语句为: System.out.println(method(method(10.0,20.0),100);Homework11.java
public double method(double num1, double num2){...}
-
创建一个Employee类,属性有(名字, 性别,年龄,职位,薪水),提供3个构造方法,可以初始化.要求充分复用构造器Homework12.java
- (名字,性别,年龄,职位,薪水),
- (名字,性别,年龄)
- (职位,薪水)
public class Homework12{ public static void main(String[] args){ Employee employee1 = new Employee("小王", "女", 22, "java工程师", 15000); Employee employee2 = new Employee("小张", "女", 23); Employee employee3 = new Employee("Android工程师", 17000); } } /*创建一个Employee类,属性有(名字, 性别,年龄,职位,薪水),提供3个构造方法,可以初始化.要求充分复用构造器Homework12.java 1. (名字,性别,年龄,职位,薪水), 2. (名字,性别,年龄) 3. (职位,薪水) */ class Employee{ String name; String gender; int age; String job; double salary; public Employee(String name, String gender, int age, String job, double salary){ this.name = name; this.gender = gender; this.age = age; this.job = job; this.salary = salary; System.out.println("name: " + name + " gender: " + gender + " age: " + age + " job: " + job + " salary: " + salary); } public Employee(String name, String gender, int age){ this.name = name; this.gender = gender; this.age = age; System.out.println("name: " + name + " gender: " + gender + " age: " + age + " job: " + job + " salary: " + salary); } public Employee(String job, double salary){ this.job = job; this.salary = salary; System.out.println("name: " + name + " gender: " + gender + " age: " + age + " job: " + job + " salary: " + salary); } }
-
将对象作为参数传递给方法。Homework13.java
题目要求:
(1)定义一个Circle类,包含个double型的radius属性代表圆的半径, 一findArea()方法返回圆的面积。
(2)定义一个类PassObject, 在类中定义一个方法printAreas(), 该方法的定义如下:
public void printAreas(Circle C, int times)
//方法签名
(3)在printAreas方法中打印输出1到times之间的每个整数半径值,以及对应的面积。
例如,times为5,则输出半径1, 2, 3, 4, 5,以及对应的圆面积。
(4)在main方法中调用printAreas(方法,调用完毕后输出当前半径值。程序运行结果
如图所示
public class Homework13{
public static void main(String[] args){
Circle circle = new Circle();
PassObject passObject = new PassObject();
passObject.printAreas(circle, 5);
}
}
/*
将对象作为参数传递给方法。Homework13.java
题目要求:
(1)定义一个Circle类,包含个double型的radius属性代表圆的半径, 一findArea()方法返回圆的面积。
(2)定义一个类PassObject, 在类中定义一个方法printAreas(), 该方法的定义如下:
public void printAreas(Circle C, int times)
//方法签名
(3)在printAreas方法中打印输出1到times之间的每个整数半径值,以及对应的面积。
例如,times为5,则输出半径1, 2, 3, 4, 5,以及对应的圆面积。
(4)在main方法中调用printAreas(方法,调用完毕后输出当前半径值。程序运行结果*/
class Circle{
double radius;
public double findArea(double r){
return Math.PI * r * r;
}
}
class PassObject{
public void printAreas(Circle C, int times){
System.out.println("Radius\t\tArea");
for (double i = 1.0; i <= times; i++) {
System.out.println(i + "\t\t" + C.findArea(i));
}
}
}
- 扩展题,学员自己做. Homework 14.java有个人Tom设计他的成员变量.成员方法,可以电脑猜拳.电脑每次都会随机生成0, 1, 2,0表示石头1表示剪刀2表示布,并要可以显示Tom的输赢次数(清单)
import java.util.Scanner;
public class Homework14{
public static void main(String[] args){
FingerPlay game1 = new FingerPlay();
game1.fingerPlay();
}
}
/*扩展题,学员自己做. Homework 14.java
有个人Tom设计他的成员变量.成员方法,
可以电脑猜拳.电脑每次都会随机生成0, 1, 2,(int)(Math.random()*100 + 1)
0表示石头1表示剪刀2表示布,并要可以显示Tom的输赢次数(清单)
0 -> 1
1 -> 2
2 -> 0*/
class FingerPlay{
int computer = (int)(Math.random() * 2);
int you;
public void fingerPlay(){
boolean flag = true;
int times = 0;
while(flag){
System.out.println("游戏开始.");
System.out.println("请输入您要出的数字?0表示石头,1表示剪刀,2表示布");
//输入
Scanner myScanner = new Scanner(System.in);
int you = myScanner.nextInt();
//非法输入
if (you > 2 || you < 0) {
System.out.println("您输入有误,请重新输入");
}else{//开始游戏
//重新确认
System.out.println("computer: " + computer);
System.out.println("you: " + you);
//游戏运行
if (you - computer == -1 || you - computer == 2) {
System.out.println("you win!");
times++;
System.out.println("这是您第 " + times + " 次胜利!");
}else if(you == computer){
System.out.println("draw.");
}else{
System.out.println("computer win!");
}
//是否继续游戏
System.out.println("是否继续游戏?1继续");
int reply = myScanner.nextInt();
if (reply != 1) {
System.out.println("游戏结束。您这次共胜利 " + times + " 次");
flag = false;
}
}
}
}
}
(老韩的代码有用到二维数组作清单,等资料下来了再重新研究一下)