内容纲要
251讲章节作业。面向对象基础的章节作业。
public class Test01{
public static void main(String[] args){
double[] arr = {1,5,7,20,66,23,49,79};
//第一道题
A01 a = new A01();
System.out.println("max = " + a.max(arr));
//第二道题
String[] arr1 = {"小猫","EZ","小喵","小庙"};
A02 b = new A02();
if(b.find(arr1,"EZ") != -1){
System.out.println("找到了 下标为:" + b.find(arr1,"EZ"));
}else {
System.out.println("没有找到");
}
//第三道题
Book myBook1 = new Book("西游记",300);
Book myBook2 = new Book("红楼梦",30);
myBook1.info();
myBook1.updatePrise();
myBook1.info();
System.out.println("=============");
myBook2.info();
myBook2.updatePrise();
myBook2.info();
}
}
class A01{//第一道题
public double max(double[] arr){
double max = arr[0];
for(int i = 1;i < arr.length;i++){
max = max > arr[i] ? max : arr[i];
}
return max;
}
}
class A02{//第二道题
public int find(String[] arr,String str){
for(int i = 0;i < arr.length;i++){
if(str == arr[i]){
return i;
}
}
return -1;
}
}
class Book{
double price;
String name;
public Book(String name, double price){
this.name = name;
this.price = price;
}
//编写类 Book,定义方法 updatePrice, 实现更改某本书的价格,
//具体: 如果价格>150,则更改为150,如果价格> 100 。更改为100,否则不变
public void updatePrise() {
if (this.price > 150) {
this.price = 150;
} else if (this.price > 100) {
this.price = 100;
}
}
public void info(){
System.out.println(name + "这本书的价格:" + price);
}
}
public class Homework04{
public static void main(String[] args) {
A03 a03 = new A03();
String[] arr01 = {"123" , "1","2"};
System.out.println("arr01的hashCode " + arr01.hashCode());
String[] arrNewB = a03.copyArr(arr01);
System.out.println("arrNewB的hashCode " + arrNewB.hashCode());
for(String xm : arrNewB){
System.out.print( xm + "\t");
}
}
}
class A03{
/*
* 编写类A03,实现数组的赋值功能copyArr,
* 输入旧数组,返回一个新数组,元素和旧数组一样
* */
public String[] copyArr(String[] arr){
String[] arrNew = new String[arr.length];
for(int i = 0;i < arr.length;i++){
arrNew[i] = arr[i];
}
return arrNew;
}
}
- 匿名对象只能用一次如下的代码 new Test( ).count1(); 用完之后就会销毁。
package main.daytwo;
public class Test01{
public static void main(String[] args) {
/*
* 1)定义一个Circle类,包含一个double 型的redius 属性代表圆的半径,
* 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() 方法,调用完毕后输出当前半径值。程序运行结果如图。(没有图)
* */
PassObject printAreas = new PassObject(5);
Circle c = new Circle();
c.findArea(1.0);
printAreas.printArea(c,5);
}
}
class Circle {
// 1)定义一个Circle类,包含一个double 型的redius 属性代表圆的半径,
// * findArea()方法返回圆的面积。
public double findArea(double radius) {
return Math.PI * radius * radius;
}
}
// 2)定义一个类PassObject, 在类中定义一个方法printAreas(), 该方法的定义如下:
// * public void printAreas(Circle c, int times) //方法签名/声明
class PassObject{
int times;
public PassObject(int times){
this.times = times;
}
public void printArea(Circle c,int times){
System.out.println("Radius"+ "\t" + "Area" );
double i = 1;
do {
System.out.println(i + "\t" + c.findArea(i));//老韩减少了此处创建对象的次数。。。
i++;
}while(i <= times);
}
}
- 老韩在Circle类中定义了一个setRadius方法,减少每次在 printArea方法中都要创建Cirtle类中的对象次数。
package main.daytwo;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
/*
* 有个Tom 设计他的成员变量.成员方法,可以电脑猜拳。
* 电脑每次都会随机生成0 ,1 ,2
* 0代表石头 1代表见到 2代表布
* 并要求可以显示Tom 的输赢次数(清单)。
* */
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入猜拳次数");
int times = myScanner.nextInt();
for (int i = 0; i < times; i++) {
System.out.println("请输入0,1,2(0代表石头,1代表剪刀,2代表布");
int n = myScanner.nextInt();
Tom tom = new Tom(n);
String str = tom.method();
System.out.println("TOM " + "电脑 " + "输赢");
System.out.println(n + " "+ tom.num + " " + str);
System.out.println("tom赢的次数" + tom.tomWin);
}
}
}
class Tom {
int tomEnter;
static int tomWin = 0;
int tomLose = 0;
int num = (int) (2 * Math.random());
public Tom(int n) {//构造方法限定传入参数必须是整数。
tomEnter = n;
}
/*
思路分析
1. int num = Math.random * 2
2. if-else语句判断tom是否赢。
3. 使用Scanner来确定tom是否继续。顺便记录下输赢次数。
*/
public String method() {
if (tomEnter == 0 && num == 1) {
tomWin++;
return "Tom WIN";
} else if (tomEnter == 1 && num == 2) {
tomWin++;
return "Tom WIN";
} else if (tomEnter == 2 && num == 0) {
tomWin++;
return "Tom WIN";
} else if (tomEnter == num) {
return "Tom 平手";
} else
tomLose++;
return "Tom DEFEAT";
}
}