Java--面向对象经典练习题

news2024/11/24 22:38:47

文章内容

一、文字版格斗游戏

二、对象数组1

三、对象数组2

四、对象数组3

五、对象数组4

题目代码如下:

文字版格斗游戏

格斗游戏,每个游戏角色的姓名,血量,都不相同,再选定人物的时候(new对象的时候),这些信息就应该被确定下来,例如:

 

import java.util.Random;
 
public class Role {
	private String name;
	private int blood;
	
	public Role() {
		
	}
	public Role(String name,int blood) {
		this.name=name;
		this.blood=blood;
	} 
	public void setName(String name) {
		this.name=name;
	}
	public String getName() {
		return name;
	}
	public void setBlood(int blood) {
		this.blood=blood;
	}
	public int getBlood() {
		return blood;
	}
	public void showRoleInfo() {
		System.out.println("姓名为:"+getName());
		System.out.println("血量为:"+getName());
		System.out.println("性别为:"+getName());
		System.out.println("长相为:"+getName());
		
	}
	public  void attack(Role role) {
		//计算造成的伤害(1~20)
		Random r=new Random();
		int hurt=r.nextInt(20)+1;
		
		//剩余血量
		int remainBlood=role.getBlood()-hurt;
		//对剩余血量做一个验证,如果为负数,就修改为0
		remainBlood=remainBlood < 0 ? 0:remainBlood;
		//修改一下挨揍人的血量
		role.setBlood(remainBlood);
		
		//this表示方法的调用者
		System.out.println(this.getName()+"举起拳头打了"+role.getName()+"一下,"
				+ "造成了"+hurt+"点伤害,"+role.getName()+"还剩下"+remainBlood+"点血量");
	}
 
}
public class GameTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//创建第一个角色
		Role r1=new Role("乔峰",100);
		//创建第二个角色
		Role r2=new Role("鸠摩智",100);
		
		//开始格斗  回合制游戏
		while(true) {
			r2.attack(r1);
			if(r1.getBlood()==0) {
				System.out.println(r2.getName()+"K.O了"+r1.getName());
				break;
			}
			
			r1.attack(r2);
			if(r2.getBlood()==0) {
				System.out.println(r1.getName()+"K.O了"+r2.getName());
				break;
			}
		}
		
 
	}
 
}

对象数组1

需求:

定义数组存储三个商品对象。

商品的属性:商品的id,名字,价格,库存。

创建三个商品对象,并把商品对象放到数组当中。

public class Goods {
	private String id;
	private String name;
	private double price;
	private int count;
	public Goods() {
		
	}
	public Goods(String id,String name,double price,int count) {
		this.id=id;
		this.name=name;
		this.price=price;
		this.count=count;
	}
	
	public void setId(String id) {
		this.id=id;
	}
	
	public String getId() {
		return id;
	}
	
	public void setName(String name) {
		this.name=name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setPrice(int price) {
		this.price=price;
	}
	
	public double getPrice() {
		return price;
	}
	
	public void setCount(int count) {
		this.count=count;
	}
	
	public int getCount() {
		return count;
	}
 
}
public class TestGoods {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个数组
		Goods arr[]=new Goods[3];
		
		//2.创建三个商品对象
		Goods g1=new Goods("001","华为p40",5999.0,100);
		Goods g2=new Goods("002","保温杯",277.0,50);
		Goods g3=new Goods("003","枸杞",12.7,70);
		
		//3.把商品添加到数组中
		arr[0]=g1;
		arr[1]=g2;
		arr[2]=g3;
		
		//4.遍历
		for(int i=0;i<arr.length;i++) {
			Goods good=arr[i];
			System.out.println(good.getId()+", "+good.getName()+", "+good.getPrice()+", "+good.getCount());
		}
		
 
	}
 
}

对象数组2

定义数组存储3部汽车对象。

汽车的属性:品牌、价格、颜色。

创建三个汽车对象,数据通过键盘录入而来,并把数据存放到数组当中。


public class Car {
	private String brand;
	private int price;
	private String color;
	
	public Car() {
		
	}
	
	public Car(String brand,int price,String color) {
		this.brand=brand;
		this.price=price;
		this.color=color;
	}
	
	public void setBrand(String brand) {
		this.brand=brand;
	}
	
	public String getBrand() {
		return brand;
	}
	
	public void setPrice(int price) {
		this.price=price;
	}
	
	public int getPrice() {
		return price;
	}
	
	public void setColor(String color) {
		this.color=color;
	}
	
	public String getColor() {
		return color;
	}

}
import java.util.Scanner;

public class TestCar {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.定义一个数组
		Car arr[]=new Car[3];
		
		
		
		Scanner sc=new Scanner(System.in);
		for(int i=0;i<arr.length;i++) {
			//2.创建三个汽车对象
			Car c=new Car();
			//录入品牌
			System.out.println("请输入汽车的品牌:");
			String brand=sc.next();
			c.setBrand(brand);
			//录入价格
			System.out.println("请输入汽车的价格:");
			int price=sc.nextInt();
			c.setPrice(price);
			//录入颜色
			System.out.println("请输入汽车的颜色:");
			String color=sc.next();
			c.setColor(color);
			
			//把汽车对象放到数组中
			arr[i]=c;
		}
		
		for(int i=0;i<arr.length;i++) {
			Car car=arr[i];
			System.out.println(car.getBrand()+", "+car.getPrice()+", "+car.getColor());
		}

	}

}

对象数组3

定义数组存储3部手机对象。

手机的属性:品牌、价格、颜色。

要求计算出三部手机的平均价格

public class Phone {
	private String brand;
	private int price;
	private String color;
	
	public Phone() {
		
	}
	
	public Phone(String brand,int price,String color) {
		this.brand=brand;
		this.price=price;
		this.color=color;
	}
	
	public void setBrand(String brand) {
		this.brand=brand;
	}
	
	public String getBrand() {
		return brand;
	}
	
	public void setPrice(int price) {
		this.price=price;
	}
	
	public int getPrice() {
		return price;
	}
	
	public void setColor(String color) {
		this.color=color;
	}
	
	public String getColor() {
		return color;
	}

}
public class TestPhone {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.定义数组用来存储三部手机
		Phone arr[]=new Phone[3];
		
		//2.创建三部手机对象
		Phone p1=new Phone("小米",1999,"白色");
		Phone p2=new Phone("华为",4999,"蓝色");
		Phone p3=new Phone("魅族",3999,"红色");
		
		//3.把手机对象添加到数组当中
		arr[0]=p1;
		arr[1]=p2;
		arr[2]=p3;
		
		//4.遍历
		int sum=0;
		for(int i=0;i<arr.length;i++) {
			Phone phone=arr[i];
			//获得每个手机的价格
			sum+=phone.getPrice();
		}
		//5.计算手机的平均值
		int avg=sum/arr.length;
		System.out.println("手机的平均值为:"+avg);

	}

}

对象数组4

定义数组存储4位学生对象。

学生的属性:姓名、年龄、姓名、爱好。

统计年龄比平均值低的学生有几个?并把他们的所有信息都打印出来

public class Student {
	private String name;
	private int age;
	private String gender;
	private String hobby;
	
	public Student() {
		
	}
	
	public Student(String name,int age,String gender,String hobby) {
		this.name=name;
		this.age=age;
		this.gender=gender;
		this.hobby=hobby;
	}
	
	public void setName(String name) {
		this.name=name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		this.age=age;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setGender(String gender) {
		this.gender=gender;
	}
	
	public String getGender() {
		return gender;
	}
	
	public void setHobby(String hobby) {
		this.hobby=hobby;
	}
	
	public String getHobby() {
		return hobby;
	}

}
public class TestStudent {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建学生数组
		Student arr[]=new Student[4];
		
		//2.创建学生对象
		Student s1=new Student("小林",19,"男","打游戏");
		Student s2=new Student("小惠",20,"女","看书");
		Student s3=new Student("小单",21,"男","写作业");
		Student s4=new Student("小诗",22,"女","学习");
		
		//3.把对象添加到数组当中
		arr[0]=s1;
		arr[1]=s2;
		arr[2]=s3;
		arr[3]=s4;
		
		int sum=0;
		for(int i=0;i<arr.length;i++) {
			Student stu=arr[i];
			//获得每个手机的价格
			sum+=stu.getAge();
		}
		
		int avg=sum/arr.length;
		System.out.println("平均年龄为:"+avg);
		
		int count=0;
		for(int i=0;i<arr.length;i++) {
			Student stu=arr[i];
			int age=stu.getAge();
			if(age<avg) {
				count++;
				System.out.println(stu.getName()+", "+stu.getAge()+", "+stu.getGender()+", "+stu.getHobby());
			}
			
		}
		System.out.println("比平均值低的学生有"+count+"个");

	}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(Java高级教程)第三章Java网络编程-第一节1:网络编程必备网络知识1之网络初识和网络协议

文章目录一&#xff1a;计算机网络基本概念二&#xff1a;计算机网络发展三&#xff1a;网络协议&#xff08;1&#xff09;生活中的协议&#xff08;2&#xff09;网络协议&#xff08;3&#xff09;协议是谁制定的注意&#xff1a;本节会总结一些必要的网络知识&#xff0c;便…

第03讲:HTTP操作之ElasticSearch映射操作

3.1.3、映射操作 有了索引库&#xff0c;等于有了数据库中的 database。 接下来就需要建索引库(index)中的映射了&#xff0c;类似于数据库(database)中的表结构(table)。 创建数据库表需要设置字段名称&#xff0c;类型&#xff0c;长度&#xff0c;约束等;索引库也一…

P11 PyTorch Momentum

参考&#xff1a; 关于梯度下降与Momentum通俗易懂的解释_ssswill的博客-CSDN博客_梯度 momentum 前言&#xff1a; P9讲梯度的时候&#xff0c;讲到过这种算法的梯度更新方法 这边重点讲解一下原理 Momentum算法又叫做冲量算法&#xff0c;其迭代更新公式如下&#xff1a; 实…

【Vue中使用Echarts】响应式布局flexible.js+rem适配方案

文章目录一、vue集成flexible方案第一种&#xff1a;在编译的时候自动转换(px2rem-loader)第二种&#xff1a;直接在写css样式的时候转换(cssrem)二、安装&配置lib-flexible.js三、安装插件cssrem一、vue集成flexible方案 先介绍几个基本的概念 px像素&#xff08;Pixel&…

LeetCode分类刷题---数组篇

刷题班数组1.二分查找704.二分查找35.搜索插入位置34.在排序数组中查找元素的第一个和最后一个位置。69.X的平方和367.有效的完全平方数2.移除元素27.移除元素283.移动零844.比较含退格的字符串977.有序数组的平方3.长度最小的子数组209.长度最小的子数组904.水果成蓝76.最小覆…

2023-01-05 长亭科技 Go 后端开发实习生二面

由于面试官前几天 &#x1f40f; 了&#xff0c;在 HR 面后补了技术二面&#xff0c;不过问得倒也不难&#xff0c;但还是记录下。 1、请做 3 ~ 5 分钟的自我介绍。 2、你说研究生的方向是漏洞挖掘和模糊测试&#xff0c;可以介绍一下吗&#xff1f; 3、简单介绍下缓冲区溢出漏…

2022年中国特色智能工厂领航制造业升级分析报告

易观&#xff1a;当前&#xff0c;新一轮的科技革命和产业变革正在重塑世界格局&#xff0c;科技创新也成为影响国家竞争力的决定性因素。在全球制造业格局重塑的过程中&#xff0c;智能工厂作为全球智能制造产业实践的示范标杆与标准载体&#xff0c;是引领全球制造业企业与工…

机器学习中的数学原理——逻辑回归

这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟&#xff0c;也希望对你的学习有帮助哦&#xff01;感兴趣的小伙伴欢迎私信或者评论区留言&#xff01;这一篇就更新一下《白话机器学习中的数学——逻辑回归》&#xff01;什么是逻辑回归算法逻辑回归 (Logistic…

【信管6.3】成本挣值计算

成本挣值计算铺垫了那么久&#xff0c;不知道大家期待不期待。总算到了挣值计算这一课&#xff0c;这个名字很奇怪呀&#xff0c;什么叫做挣值&#xff1f;成本不就是我们的投资吗&#xff1f;这个挣值到底是要干嘛&#xff1f;带着这些疑问&#xff0c;我们就来看看挣值计算到…

2022全年度奶粉十大热门品牌销量榜单

随着居民收入水平的提升、消费观念的转变及健康饮食意识的逐渐增强&#xff0c;消费者对食品品质的要求也越来越高&#xff0c;奶粉市场也同样如此。当前&#xff0c;国内婴幼儿奶粉市场规模呈稳步增长态势&#xff0c;同时&#xff0c;“三孩政策”的发布实施&#xff0c;也利…

C++模板 - 提高编程

引言 本阶段主要针对C泛型编程和STL技术做详细的讲解&#xff0c;探讨C更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具&#xff0c;大大提高复用性 例如生活中的模板&#xff1a; 一寸照片模板&#xff1a; 模板的特点&#xff1a; 模板不可以直接使用&#…

制造业项目管理软件如何帮助企业做好项目费用管理?

在项目导向型制造型企业中&#xff0c;项目的成本管理与费用控制是企业进行项目评价与利润管控、指导市场选择和项目筛选的重要手段。而传统的手工管理模式下&#xff0c;制造企业管理层很难快速了解到哪些项目出现了延误、哪些项目发生了费用超支、哪些项目产生了变更等问题与…

C#,图像二值化(14)——全局阈值的最佳迭代算法及源代码

1、图像二值化 图像二值化是将彩色图像转换为黑白图像。大多数计算机视觉应用程序将图片转换为二进制表示。图像越是未经处理&#xff0c;计算机就越容易解释其基本特征。 二值化过程 在计算机存储器中&#xff0c;所有文件通常以灰度级的形式存储&#xff0c;灰度级具有从0…

欢迎来到,个人数据安全“世界杯”

2022年国际足联世界杯&#xff0c;巴西止步8强&#xff0c;克罗地亚挺到半决赛&#xff0c;阿根廷与法国双强对决最终阿根廷点球大战胜出……精彩纷呈的世界杯已经落幕&#xff0c;而我们因足球而起的激情和热爱不会消退。世界杯是属于每个人的&#xff0c;每个球迷在世界杯中都…

03-redis篇 架构设计之一: 主从复制

目录 第一篇: 主从复制 二. 实践操作 1. 准备工作 -> ps: 安装redis的文章: docker版 的redis安装 2. 制作docker镜像 -> 2.1 制作redis6379 -> 2.2 制作redis6380 -> 2.3 制作redis6381 3. 查看主镜像redis6379的ip地址 -> 3.1 IPAddress位置在这: …

【数据库数据恢复】mdb_catalog.wt文件丢失的MongoDB数据恢复案例

MongoDB数据库数据恢复环境&#xff1a; MongoDB数据库部署在一台虚拟机上&#xff0c;虚拟机操作系统为Windows Server2012。 MongoDB数据库故障&分析&#xff1a; 由于业务发展需求&#xff0c;需要对MongoDB数据库内的文件进行迁移&#xff0c;在MongoDB服务开启的状态…

内部排序:希尔排序

希尔排序&#xff0c;又称为“缩小增量排序”&#xff0c;是直接插入排序的优化。 对于直接插入排序&#xff0c;当待排记录序列处于正序时&#xff0c;时间复杂度可达O(n)&#xff0c;若待排记录序列越接近有序&#xff0c;直接插入排序越高效。希尔排序的思想正是基于这个点…

QT(5)-QHeaderView

QHeaderView1 说明2 函数2.1 级联调整大小2.2 默认对齐方式2.3 count()2.4 表头默认单元格大小2.5 hiddenSectionCount()2.6 分区显示和隐藏2.7 表头高亮2.8 是否可以移动第一列2.7 是否显示排序索引2.8 表头长度2.9 逻辑索引2.10 表头分区最大/小大小2.11 移动分区2.12 表头偏…

Qlik帮助提升数据素养:新一代打工人“必备招式”

“营销”在业务推进过程中扮演着至关重要的角色。然而&#xff0c;当前营销的影响力却往往未得到广泛理解和重视。 在数字世界里&#xff0c;数据浩瀚如海&#xff0c;但如果“探险者”没有乘风破浪的能力&#xff0c;这片数据汪洋只能沉寂在角落里“吃灰”。而数据素养&#…

Ubuntu20.04 rosdep 失败解决方法

参考文章http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.htmlsudo gedit ./rosdistro/__init__.py sudo gedit ./rosdep2/gbpdistro_support.py sudo gedit ./rosdep2/sources_list.py sudo gedit ./rosdep2/rep3.…