首页 > 分享 > java学习练习题

java学习练习题

一、Java 基础

1.1 环境变量 DOS 键盘录入

1 环境变量配置
2常用DOS命令
3 键盘录入

1.2 三种结构 分支类型

1 数据类型
2 三种结构
3 分支结构 单分支(if) 多分支(switch)
4习题
这里写图片描述
这里写图片描述

1.3 三种循环

1 三种循环(for while do while)
2 跳转
3 二重循环
4习题
1、使用循环输出100、95、90、85……5。
2、编程计算1至50中是7的倍数的数值之和。
3、1)根据输入数字显示对应的英文星期名称缩写,输入不合法数字时提示输出错误
2)输入错误继续循环
4、求一个数的阶乘例如: 5! 5*4*3*2*1 0!==1
1!=(1-1)!*1=0!*1=1*1=1
2!=(2-1)!*2 1!*2 1*2 2
3!=(3-1)!*3 2!*3 2*3=6
4!=4*3!
阶乘是基斯顿•卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿•卡曼引进这个表示法。
亦即n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

5、打印数字组成的直角三角形
1
22
333
4444
55555
66、商场对顾客的年龄层次进行调查
计算各年龄层次的顾客比例
这里写图片描述
7、循环输入商品编号和购买数量(选做)
当输入n时结账
这里写图片描述

1.4 方法 方法重载

1 方法 (4种)
2 方法重载
3 跳转语句
4 递归
5习题

1、 输出斐波那契数列的前20项, 结果:1 1 2 3 5 8 13…… 2、打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 3、编写一个方法实现数字倒置并返回这个数字。即3456倒置后6543 4. 用户登录验证。验证次数最多3次 ![这里写图片描述](https://img-blog.csdn.net/20171114205926003?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzUyOTI5MjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 5.综合运用嵌套if选择结构、switch选择结构、多重if选择结构,实现商品换购功能12345678

二 、 面向对象

2.1 类 构造方法

1 类
2 构造方法

1 类
2 构造方法
3 习题

利用面向对象的思想写下面的程序 1.小美在朝阳公园溜旺财【注:旺财是狗】 分析: Dog 特征:名称 Person : 特征:姓名 行为:溜(Park ,Dog) Park: 特征:名称 2.小明穿着白色的特步运动鞋在奥林匹克公园跑步 3.赵老师在讲台上讲课,小刚认真的听课做笔记 4.张阿姨和李阿姨在物美超市买红富士 构造方法 1.李晓在家里开party,向朋友介绍家中的黄色的宠物狗【彩彩】具有两条腿走路的特异功能。 2.王梅家的荷兰宠物猪【笨笨】跑丢了,她哭着贴寻猪启示。 3.富二代张三向女朋友李四介绍自己的新跑车:白色的宾利 4.定义一“圆”(Circle)类,圆心为“点”Point类,构造一圆,求圆的周长和面积,并判断某点与圆的关系(扩展) 1. *某公司正进行招聘工作,被招聘人员需要填写,做“个人简历”的封装类,并打印简历信息 //属性 姓名 年龄 身高 性别 毕业学校 婚姻状况 联系方式 //方法 打印 showInfo() 2*.某游戏中有巫师角色,巫师的属性有级别、战斗力、生命值等,编写巫师类的重载方法,要求如下: 1) 构造方法1:创建巫师对象后,巫师具有10000的生命值 2) 构造方法2:在创建巫师对象时,可以给巫师指定级别、战斗力、生命值 (级别, 战斗力, 生命值){ } 3) 创建不同对象打印信息。 3.给SE类添加属性:基本工资、考核工资 给PM类添加属性:基本工资、项目奖金、分红 添加构造方法分别对SE与PM中属性进行赋值 编写薪水计算类salary,实现重载pay()方法 提示:pay(SE se) pay(PM pm) 4.编写Car类属性:车名、颜色、产地,实现run()方法 1) 添加有参构造方法,在构造方法中给成员赋值,并调用run()方法。 2) 重载run()方法,给run()方法传递一个int类型参数speed,输出此方法信息。 5.编写程序,添加一个Add类 1) 添加一个方法sum(),返回类型为int,有两个int类型参数,该方法计算两个参数的和 2) 添加方法sum()的重载方法,返回类型为double,有三个参数double类型,该方法计算三个参数的和。

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

2.2 this static

1 this 关键字
2 static 静态

1 this 关键字
2 static 静态
3

利用面向对象 构造函数 this关键字的知识完成以下内容 1.富二代张三向女朋友李四介绍自己的新跑车:白色的宾利 /* 分析: 富二代 特征: 名称 行为: 介绍(女朋友,车) 女朋友 特征: 名称 车 特征: 品牌 颜色 */ 2.贵妇从宠物店购买了宠物狗、宠物猫,某天,家里举行聚会,向朋友介绍起自家豢养的宠物的情形。 /* 贵妇类: 特征: 名称 行为: 宠物店购买了 宠物狗、宠物猫 家里举行聚会 介绍宠物狗、宠物猫 宠物狗 特征: 性别 年龄 品种 行为: 看家 啃 宠物猫 特征: 性别 年龄 品种 行为: 抓老鼠 */ 3.创建一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性和启动/加速/减速/停车的行为,使用不同的构造方法创建汽车对象,实现各个功能 4.定义一“圆”(Circle)类,圆心为“点”Point类,构造一圆,求圆的周长和面积,并判断某点与圆的关系(扩展) 分析: 点:x y 圆:半径和圆心 人: 计算 d>r(圆外) d==r 圆上 d<r 圆内 5..创建Employee类,属性:姓名,年龄,性别,工资。方法:显示对象的属性值,工作。 要求: 构造函数重载。(无参数的,有参数的都要有。) 创建3个对象。

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

2.3 继承 封装

1 继承
2 封装

1 继承 学生 老师的继承 super equals
2 封装 同上 4种修饰符的应用
3 习题

*1、定义一个人类(姓名,年龄,性别,自我介绍方法),学生类继承人类(学号,班级), 老师类继承人类(工号,教龄),学生类和老师类重写自我介绍 *2、设计Bird、Fish类,都继承自类Animal,实现其重写方法info()打印它们的信息,参考运行结果如图: 我是一只红色的鸟, 今年4岁了! 我是一只五斤重的鱼, 今年2岁了! 3、创建一个Person父类,属性:name、age、sex、address、phone,方法:打印员工信息 创建Student类继承Person父类,属性:StudentId 要求如下: 1)建立一个myemployee1包,所有类添加到此包中。设置name属性设置为public修饰符,age属性设置为protected修饰符,sex属性设置为默认修饰符,address、phone分别设置为private修饰符,使用重写方法打印学生的所有信息,并试图观察是否访问到每个属性,并用注释说明原因 2)建立一个myemployee2包,此包创建父类,设置name属性设置为public修饰符,age属性设置为protected修饰符,sex属性设置为默认修饰符,addres、phone分别设置为private修饰符 建立一个myemployee3包,此包创建子类,使用重写方法打印学生的所有信息,并试图观察是否访问到每个属性,并用注释说明原因 1.有一个银行账户Account 其中有账户余额的属性, 有存款和取款的行为 【利用封装的思想定义】 有一个测试类 调用账户的存款和取款的行为 【注意: 取款需要有判断 账户余额是否充足】 2.自己定义一个计算器工具类,实现以下内容 1.求两个数的和 2.求两数之差 3.求两数取余 4.求两数之积 自己定义一个测试类进行验证 3.利用封装的思想 实现下面功能 创建一个People类 属性:姓名 年龄 身高 性别 方法:说话 计算加法 改名 创建一个对象名叫“阿美”,年龄18岁 身高160 性别女 调用说话的方法说出“你好” 计算23+45的值 将名字改为“美眉”

1234567891011121314151617181920212223242526272829303132333435

2.4 多态 抽象

1 多态
2 抽象
3 final
代码练习
1多态:人 中国人 英国人 意大利人 餐厅 测试
2抽象:猫 狗 动物 测试
3final 具体概念应用
4 习题

1.设计一个形状(Shape)类,里面有计算周长和面积的方法 设计一个矩形类, 继承自形状类 自己特有属性 长和宽 设计一个三角形类 继承自形状类 特有属性 三个边的边长 【注意:两边之和大于第三边】 设计一个测试类,创建矩形对象和三角形对象 并计算其周长和面积 2.定义一个人的类(属性有名字,年龄。写一个能输出各个属性值 的方法showInfo(),定义一个学生类(属性有性别),学生继承人类 要求: (1)父类的属性赋值用构造方法来实现(分别用有参数构 造方法和无参数构造方法实现) (2)子类的属性也用构造方法来赋值。 (3)在子类中重写父类的 showInfo()方法 (4)声明学生类的对象,调用学生的显示信息的方法。 3.请编码实现动物世界的继承关系: 动物(Animal)具有行为:吃(eat)、睡觉(sleep) 动物包括:兔子(Rabbit),老虎(Tiger) 这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。 1.整理面向对象知识点 类和对象的关系 构造函数 this关键字 封装 static关键字 代码块 继承 super关键字 final关键字 抽象类 *2.愤怒的小鸟游戏中,每种鸟都具有攻击的功能,但是 小红鸟的攻击方式为 - 投撞 小黄鸟的攻击行为 -- 加速撞击 小白鸟的攻击行为 ---- 下蛋攻击 小黑鸟的攻击行为 --- 自爆 小蓝鸟的攻击行为 --- 分身攻击 创建对应的对象,实现各自的攻击行为 *3.交通工具都具有有运输的功能,但是 轮船的运输行为 --- 海运 飞机的运输行为 --- 空运 货车的运输行为 ---- 陆运 创建各自的对象,实现运输行为 4.描述一个学生类,具备id 、 name两个属性 、 学生都具备学习的行为功能,但是有部分学生在学习的过程中也会赚钱。 普通学生: 学习,不会赚钱 会赚钱的学生:学习、 还会赚钱。 5.描述动物、 狗、 鱼 三个类,动物都具备name、 color两个属性、 动物都具备移动的行为。 狗特有的一个方法就是咬人。鱼特有的一个行为:吹泡泡。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

2.5 接口 内部类 单例

1 接口 关于接口的而一个程序
2 内部类(4类 静态 匿名 局部 成员)
3 单例模式(饿汉 懒汉)

代码练习
1 接口: 鸟 飞机 超人 动物 飞行能力 睡觉能力 测试
2静态内部类 匿名内部类 局部内部类 成员内部类 (各类的定义写法)
3 单例 饿汉 懒汉 (定义写法)
4习题

1.设计一个员工类,其中有计算员工薪水的方法。 根据员工职务的不同,薪水计算方式也不同。 员工类型 薪水构成 ----------------------------------------------------- 经理 底薪 + 奖金 销售人员 底薪 + 提成 普通员工 底薪 + 补贴(车补、饭补等等) 然后,设计一个测试类,测试一下。 场景:年终,领导找员工谈话,让员工介绍自己的薪水。 打印出来要求:信息尽可能详细。 2.设计一个动物类,属性: 姓名,性别 设计一个猫类,设计一个狗类, 猫和狗都继承自动物类 需求:在测试类中设计一个方法,这个方法需要一个参数,参数的类型可以是猫类,也可以是狗类 在方法体内,将传入的猫或者狗的属性输出即可 输出到底是猫还是狗 3. 设计一个公司抽象类,具有抽象方法 -- 营业,休息 设计一个快递公司类作为公司类的子类 设计一个顺风快递类,作为快递类的子类 需求:实例化一个顺丰快递的对象,从控制台录入一个24以内的数据,如果数据在8~18点之间,顺丰营业。否则,顺丰快递公司休息 4. 设计一个外部类,包含一个成员内部类,成员内部类中有一个方法show。 外部类中有一个属性name, 成员内部类中有一个属性name,show方法中有一个局部变量name show方法需要分别打印三个name class Out{ 5. 设计一个家政服务接口,在接口中定义一个方法:洗衣,做饭 设计一个测试类,在测试类用匿名内部类来实现接口; 在main方法中实现场景: 小明请了一个保姆,回去做饭 6.每个计算机可以连接任意多个打印机,但是只能有一个打印打印处理系统,避免两个打印作业同时输出到打印机。 利用单例的方式设计程序,完成打印系统处理打印的问题。 7、编写以“动物”为例作为基类(属性:名称、颜色;动作:走路的动作),子类有:猴子类、老虎类、鸟类,并显示出动物的名称以及走路的动作 8、编写一个Person类用来保存人的姓名属性,并定义一个以姓名为参数的Person类的构造函数;再分别编写Person的子类客户类Customer和员工类Employee。 Customer类保存客户的ID属性,并提供可对客户ID号进行更新的方法;其构造方法以客户姓名和ID为参数,方法内部要调用父类Person的构造方法 Employee类保存员工的工号属性,并提供可对员工工号进行更新的方法;其构造方法以员工姓名和工号为参数,方法内部要调用父类Person的构造方法。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

9、某汽车(Vehicle)租赁公司出租多种车辆,车型及租金情况如下:
这里写图片描述
编写程序实现计算租赁价
这里写图片描述
这里写图片描述

三、数组与collection

3.1 数组与查找

主要内容:
1 数组的应用 求和 遍历
2 普通查找 二分查找
3 排序 冒泡排序 选择排序 插入排序

代码练习:
1 数组的应用 求和 遍历 :十人成绩,输入,计算其和平均值,然后遍历输出
2 普通查找 二分查找
3 排序 冒泡排序 选择排序 插入排序
4 习题

1. 定义存放String类型数据的数组,放置5个元素,利用两种方法遍历数组元素(for for-each) 2.获取某个数组中的最小值 3.定义数组,键盘录入5个学生的成绩【成绩值自己设定】,获得成绩之和平均成绩,最小成绩,最大成绩。 4.一个学生考了三门科目,后来发现该生为特长生,每个科目加5分 5已知一个数组, 1.求数组中心元素。 2.求所有元素和。 3.输出所有奇数下标元素。 4.输出所有元素中,值为奇数的。 5.将所有元素乘二。 6.已知一个数组A,将奇数位置元素存到B数组中,偶数位置元素存到C数组中。 75.数组int[] arr = {1, 45, 67, 89, 90}; 将数组倒序输出为{90,89,67, 45, 1} 8.现在有如下的一个数组: int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int[] newArr={1,3,4,5,6,6,5,4,7,6,7,5} 思路: 生活中的问题解决= 程序中的解决; 1、确定出不为0的个数,这样可以开辟新数组; 2、从旧的数组之中,取出内容,并将其赋给新开辟的数组; 9.现在给出两个数组: ·数组A:[1, 7, 9, 11, 13, 15, 17, 19] ·数组b:[2, 4, 6, 8, 10] 两个数组合并为数组c,按升序排列。 思路: 1.根据A和B的长度和 创建一个新长度的数组C 2.遍历两个数组,将A和B中的元素放在C中 3.利用冒泡 选择 插入的方式进行升序或者降序的排序

12345678910111213141516171819202122232425262728293031323334353637

3.2 数组与异常

主要内容:
1常处理机制,五个关键字
2 Arrys工具类的直接调用
3 math 方法的应用
4 多维数组
代码练习(例子)
1 异常查找 异常抛出 几个例子代码
2 Arrays工具类的直接调用(练手用)
3 math 方法的练习
4 多维数组的求和题(练习及变化)
5 习题

程序设计: --------------------------- 请输入一个被除数: 请输入一个除数: 除的结果是: --------------------------- 请输入一个被除数: 请输入一个除数: 除数输入有误,不能为0知道不~ -------------------------- *2、年龄只能输入0到100,使用自定义异常完成 3、使用二维数组,打印杨辉5行三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 4、用户从键盘输入若干个数存入数组中,用冒泡排序法对数组排序,比如:1 2 3 5 6 然后用户从键盘输入一个数,把该数插入数组中,保证插入该数后,数组还是有序的 1 2 3 4 5 6 5、打印数组a中出现奇数次的数字(扩展) int[] a = { 1, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 8 }; 例如: 1出现次数:1 4出现次数:3 6出现次数:5 8出现次数:1

1234567891011121314151617181920212223242526272829303132

3.3基本数据类型对应的包装类 常用类

1基本数据类型
2 string类
3 StringBuffer类
4.StringBuilder类

习题 1.从控制台录入一个字符串,判断字符'a'在该字符串中出现的次数 2.从控制台录入一个字符串,去除这个字符串中所有的空格,并输出 String replace(char oldChar, char newChar) (" ","") 3.从控制台录入一个字符串,如果这个字符串以大写字母开头,将该字符串转成全小写; 如果这个字符串以小写字母开头,将该字符串转成全大写 a-z:97-122 A-Z:65-90 4.从控制台输入一个字符串,大写转小写,小写转大写 5.对字符串中字符进行自然顺序降序排序。 6.获取一个字符串在另一个字符串中出现的次数 "abkkcdkkefkkskk" 思路: 1,定义个计数器。 2,获取kk第一次出现的位置。 3,从第一次出现位置后剩余的字符串中继续获取kk出现的位置。 每获取一次就计数一次。 4,当获取不到时,计数完成 7.将一个字符串进行反转。将字符串中指定部分进行反转,"abcdefg"; gfedcba 思路: 1,曾经学习过对数组的元素进行反转。 2,将字符串变成数组,对数组反转。 3,将反转后的数组变成字符串。 4,只要将或反转的部分的开始和结束位置作为参数传递即可 8、声明一个枚举,枚举值为四季,实现需求: 设计一个学生类,在学生类中设计一个枚举类型的成员变量 实现一个普通方法,实现:根据学生的枚举类型的成员变量的值,定制不同季节的上课 ---

12345678910111213141516171819202122232425262728293031323334353637

3.4集合 collection list

collection 接口:list 和 set
1 arraylist
2 linkedlist
3.Iterator接口

习题 1.创建一个User类,用于name,password两个成员变量。 在主函数中使用for循环创建10个User对象,并对成员变量赋值, 在for循环中把10个User对象加入到一个ArrayList对象中。 然后再使用一个for循环从这个ArrayList对象中把User对象取出, 并在屏幕上打印这10个User对象的成员变量。 2.使用Iterator对象取出存放在ArrayList中的User对象,重复上述试验。 3、设计一个交通工具抽象类,提供抽象方法--驾驶 汽车作为交通工具的一种,实现了驾驶的方法(在马路上驾驶) 火车作为交通工具的一种,实现了驾驶的方法(在铁路上驾驶) 飞机作为交通工具的一种,实现了驾驶的方法(在天上驾驶) 需求:做一个测试类,在测试类的main函数中,分别实例化一个汽车的对象, 火车的对象和飞机的对象,并分别描述驾驶行为 4.设计一个工厂类(富土康),传入一个标志,返回不同类型的手机 5、设计一个数据传输接口:Type-C标准 设计一个防水的接口:防水 设计一个手机类,实现这个数据传输接口,采用Type-C;同时实现了防水的接口 6、程序设计: 运输接口:服务宗旨:更快,更快,更快! 空运运输接口:空运 陆运运输接口:陆运 快递公司类:属性: 公司名 韵达快递:只能陆运 申通快递:只能空运 顺丰快递:既能陆运,也能空运 需求: 小明需要寄快递,要发陆运 小王需要寄快递,要发空运

12345678910111213141516171819202122232425262728293031323334353637383940

3.5 set

1 hashset
2treeset
习题

1.已知有一个工人Worker类 属性:姓名 年龄 工资, 行为 void work() a.在ArrayList集合中添加三个工人对象,信息如下: zhang3 18 3000 li4 25 3500 wang5 22 3200 b. 在li4之前插入一个工人 信息为: zhao6 24 3300 c. 删除wang5的信息 d. 利用for循环遍历,打印几个中所有工人的信息 e. 利用迭代遍历,对集合中的所有工人调用work方法 2. 在上一题的基础上 将集合换为HashSet 要求: 当工人姓名 年龄 工资全部相等时 是为同一个工人 3.在第1题的基础上 将集合换为TreeSet 要求:按照工人姓名降序排序,如果姓名一样,按照工人年龄升序排序,如果年龄一样,按照工资降序排序

123456789101112131415161718

相关知识

10个高质量英语阅读资源推荐:APP、在线材料、练习题网站
电子宠物游戏java
java练习题
旅行社管理法制规度练习题.doc
练习题(旅行社)精选.doc
python:列表的练习题
宠物游戏系统 java
python 练习题
JAVA宠物信息管理系统开发教程【MVC+JCF+IO流】
Java 中 == 和 equals() 区别

网址: java学习练习题 https://m.mcbbbk.com/newsview333519.html

所属分类:萌宠日常
上一篇: 伴侣宠物研究报告
下一篇: 转向轻体力活的年轻人