JAVA基础-U7 面向对象编程(基础部分)-本章作业

本章作业
  1. 编写类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;
    		}
    		
    	}
    }
    
  2. 编写类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;
    	}
    }
    
  3. 编写类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;
    		}
    	}
    }
    
  4. 编写类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;
    	}
    }
    
  5. 定义一个圆类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;
    	}
    }
    
  6. 编程创建一个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;
    		}
    		
    	}
    }
    
  7. 设计一个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);
    	}
    }
    
  8. 给定一个Java程序的代码如下所示,则编译运行后,输出结果是()
    在这里插入图片描述

    new Test().count1();是匿名对象,只能执行一次。这里输出10;
    上面的匿名对象输出后即销毁。
    创建了新的对象,名字是t1
    t1.count2();先输出9,再自增
    t1.count2();先输出上面自增后的10,再自增
    
  9. 定义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);
    	}
    
    }
    
  10. 试写出以下代码的运行结果() // Homework10.java在这里插入图片描述

    d2.m();i先输出给j,j=100,i再自增成101。所以 i = 101 j = 100
    101
    101
    
  11. 在测试方法中,调用method方法,代码如下,编译正确,试写出method方法的定义形式,调用语句为: System.out.println(method(method(10.0,20.0),100);Homework11.java

    public double method(double num1, double num2){...}
    
  12. 创建一个Employee类,属性有(名字, 性别,年龄,职位,薪水),提供3个构造方法,可以初始化.要求充分复用构造器Homework12.java

    1. (名字,性别,年龄,职位,薪水),
    2. (名字,性别,年龄)
    3. (职位,薪水)
    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);
    	}
    }
    
  13. 将对象作为参数传递给方法。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(方法,调用完毕后输出当前半径值。程序运行结果
    如图所示
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GC8NDiPn-1685258217181)(C:/Users/苏逸云/AppData/Roaming/Typora/typora-user-images/image-20230526165726031.png)]

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));
		}
	}
}
  1. 扩展题,学员自己做. 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;
				}
			}
		}
		
		
	}
}

(老韩的代码有用到二维数组作清单,等资料下来了再重新研究一下)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值