demo06 面向对象基础练习.pdf

上传人:李医生 文档编号:8936832 上传时间:2021-01-26 格式:PDF 页数:15 大小:598.01KB
返回 下载 相关 举报
demo06 面向对象基础练习.pdf_第1页
第1页 / 共15页
demo06 面向对象基础练习.pdf_第2页
第2页 / 共15页
demo06 面向对象基础练习.pdf_第3页
第3页 / 共15页
demo06 面向对象基础练习.pdf_第4页
第4页 / 共15页
demo06 面向对象基础练习.pdf_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《demo06 面向对象基础练习.pdf》由会员分享,可在线阅读,更多相关《demo06 面向对象基础练习.pdf(15页珍藏版)》请在三一文库上搜索。

1、面向对象基础练习 标签: Java入坑之旅 0 x00. 题目 1. 定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个 movePoint(int dx,int dy)方法实现点的位置移动,创建两个Point对象p1、p2,分别调用movePoint方法 后,打印p1和p2的坐标。必作题 2. 定义一个矩形类Rectangle:(知识点:对象的创建和使用)必做题 2.1 定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周 长。 2.2 有2个属性

2、:长length、宽width 2.3 通过构造方法Rectangle(int width, int length),分别给两个属性赋值 2.4 创建一个Rectangle对象,并输出相关信息 ; 3. 定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。 必做题 3.1 无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值; 3.2 输出笔记本信息的方法 3.3 然后编写一个测试类,测试笔记本类的各个方法。 4. 设计一个类Student,该类包括姓名、学号和成绩。设计一个方法,按照成绩从高到低的顺序输出姓名、学号 和成绩信息。选做题 5. 定义两个类

3、,描述如下: 必做题 5.1 定义一个人类Person: 5.1.1 定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX” 5.1.2 有三个属性:名字、身高、体重 5.2定义一个PersonCreate类: 5.2.1 创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 5.2.2 分别调用对象的sayHello()方法。 6. 定义两个类,描述如下: 必做题 6.1定义一个人类Person: 6.1.1定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX” 6.1.2有

4、三个属性:名字、身高、体重 6.1.3通过构造方法,分别给三个属性赋值 6.2定义一个Constructor类: 6.2.1创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 6.2.2分别调用对象的sayHello()方法。 7. 定义一个汽车类Vehicle,要求如下:选做题 7.1 属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类 型),并且所有属性为私有。 7.2 至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。 7.3 为私有属性提供访问器方法。

5、注意:汽车品牌一旦初始化之后不能修改。 7.4 定义一个一般方法run(),用打印语句描述汽车奔跑的功能 7.5 定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。 0 x01. 参考答案 1. 定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个 movePoint(int dx,int dy)方法实现点的位置移动,创建两个Point对象p1、p2,分别调用movePoint方法 后,打印p1和p2的坐标。必作题 package com.ryanjie.

6、Demo06Homework; /* * ClassName:Point * Description: 点类Point * author: Ryanjie * date:2018年8月13日 下午4:23:03 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class Point int x; int y; public Point() public Point(int x0, int y0) this.x = x0; this.y = y0; /* * Title: movePoint * Descriptio

7、n: 点的位置移动 * * param dx * param dy * return: void * throws */ public void movePoint(int dx, int dy) System.out.printf(移动前点的坐标为 ( x : %d, y : %d)n, this.x, this.y); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 2. 定义一个矩形类Rectangle:(知识点:对象的创建和使用)必做题 2.1 定义三个方法:g

8、etArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周 长。 2.2 有2个属性:长length、宽width 2.3 通过构造方法Rectangle(int width, int length),分别给两个属性赋值 2.4 创建一个Rectangle对象,并输出相关信息 ; System.out.printf(移动量为 ( x : %d, y : %d)n, dx, dy); this.x += dx; this.y += dy; System.out.printf(移动后点的坐标为 ( x : %d, y : %d)n, this.x, this

9、.y); 33 34 35 36 37 38 39 40 package com.ryanjie.Demo06Homework; /* * ClassName:PointTest * Description:点类Point测试文件 * author: Ryanjie * date:2018年8月13日 下午4:22:47 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class PointTest public static void main(String args) Point p1 = new Point(

10、1, 2); Point p2 = new Point(3, 4); p1.movePoint(p2.x, p2.y); / 移动前点的坐标为 ( x : 1, y : 2) / 移动量为 ( x : 3, y : 4) / 移动后点的坐标为 ( x : 4, y : 6) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package com.ryanjie.Demo06Homework; /* * ClassName:Rectangle * Description:矩形类Rectangle * author: R

11、yanjie * date:2018年8月13日 下午4:33:34 * 1 2 3 4 5 6 7 8 * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class Rectangle double length; double width; public Rectangle(double length, double width) this.length = length; this.width = width; public double getArea(double length, double width) r

12、eturn this.length * this.width; public double getPer(double length, double width) return 2 * (this.length + this.width); /* * Title: showAll * Description: 输出长方形的长,宽,周长,面积 * * param length * param width * return * return: double * throws */ public void showAll(double length, double width) System.out

13、.printf(长方形的长为:%3.3f, 宽为%3.3fn, this.length, this.width); System.out.printf(长方形的面积为:%3.3fn, getArea(length, width); System.out.printf(长方形的周长为:%3.3fn, getPer(length, width); 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package com.ryanjie.

14、Demo06Homework; /* * ClassName:RectangleTest * Description:长方形类Rectangle的测试类 * author: Ryanjie * date:2018年8月13日 下午4:47:54 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class RectangleTest public static void main(String args) 1 2 3 4 5 6 7 8 9 10 11 12 3. 定义一个笔记本类,该类有颜色(char)和cpu型号

15、(int)两个属性。 必做题 3.1 无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值; 3.2 输出笔记本信息的方法 3.3 然后编写一个测试类,测试笔记本类的各个方法。 Rectangle rectangle = new Rectangle(2, 3); rectangle.showAll(rectangle.length, rectangle.width); / 长方形的长为:2.000, 宽为3.000 / 长方形的面积为:6.000 / 长方形的周长为:10.000 13 14 15 16 17 18 19 20 21 22 package com.ryanj

16、ie.Demo06Homework; /* * ClassName:Computer * Description:笔记本类Computer类 * author: Ryanjie * date:2018年8月13日 下午9:15:49 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class Computer private char color; private int cpu; public Computer() /* * Title: Computer * param: param color 笔记本颜色 *

17、 param: param cpu 笔记本CPU * throws */ public Computer(char color, int cpu) this.color = color; this.cpu = cpu; public int getCpu() return cpu; public char getColor() return color; public void setCpu(int cpu) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

18、4. 设计一个类Student,该类包括姓名、学号和成绩。设计一个方法,按照成绩从高到低的顺序输出姓名、学号 和成绩信息。选做题 this.cpu = cpu; public void setColor(char color) this.color = color; public void showComputer() System.out.printf(笔记本的颜色:%ct CPU:%dn, getColor(), getCpu(); 35 36 37 38 39 40 41 42 43 44 45 package com.ryanjie.Demo06Homework; /* * Class

19、Name:ComputerTest * Description:笔记本类Computer的测试类 * author: Ryanjie * date:2018年8月13日 下午9:15:54 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class ComputerTest public static void main(String args) Computer computer = new Computer(); computer.showComputer(); Computer computer2 = new

20、 Computer(红, 4210); computer2.showComputer(); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.ryanjie.Demo06Homework; import static java.lang.Math.random; import java.util.Scanner; /* * ClassName:Student * Description:TODO * author: Ryanjie * date:2018年8月13日 下午5:29:52 * 1 2 3 4 5 6 7

21、8 9 10 11 12 * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class Student long sno; /学号 String sname; /姓名 int sscore; /成绩 public Student(long sno, String sname, int sscore) / TODO Auto-generated constructor stub this.sno = sno; this.sname = sname; this.sscore = sscore; / public long g

22、etSno() / return sno; / / public String getSname() / return sname; / / public int getScore() / return sscore; / / public void setSno(long sno) this.sno = sno; public void setSname(String sname) this.sname = sname; public void setScore(int sscore) this.sscore = sscore; 13 14 15 16 17 18 19 20 21 22 2

23、3 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 package com.ryanjie.Demo06Homework; import static java.lang.Math.random; /* * ClassName:StudentTest * Description:TODO * author: Ryanjie * date:2018年8月13日 下午7:41:39 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ publ

24、ic class StudentTest 1 2 3 4 5 6 7 8 9 10 11 12 13 14 static Student stus = new Student30; public static String base = abcdefghijklmnopqrstuvwxyz0123456789; public static String firstName=赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严 华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷 罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝

25、明臧计伏成戴谈宋茅庞熊 纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫 经房裘缪干解应宗宣丁贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏加封芮羿储靳; public static String girl=秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅 琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾 颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育 滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽 ; public static

26、 String boy=伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生 龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思 群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏 泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘; public static int getNum(double start, double end) return (int)(Math.random()*(end-start+1)+start); /* * Title: getChineseName * Des

27、cription: 随机产生一个人的中文名字 * * return * return: String * throws */ private static String name_sex = ; private static String getChineseName() int index=getNum(0, firstName.length()-1); String first=firstName.substring(index, index+1); int sex = getNum(0,1); String str=boy; int length=boy.length(); if(sex

28、=0) str=girl; length=girl.length(); name_sex = 女; else name_sex=男; index=getNum(0,length-1); String second=str.substring(index, index+1); int hasThird=getNum(0,1); String third=; if(hasThird=1) index=getNum(0,length-1); third=str.substring(index, index+1); return first+second+third; /* * Title: getS

29、no 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 * Description: 随机产生学号( 1 231-1) * * return * return: long * throws */ private static long getSno() return (long)(Integer.MAX_VALUE * random() + 1; /* * Title: getScore

30、* Description: 随机产生成绩 * * return * return: int * throws */ private static int getScore() return (int)(Math.random() * 101); / public void initStudent() / for (int i = 0; i stus.length; i+) / stusi = new Student(getSno(), getChineseName(), getScore(); / / / / public static void showStudent() / System

31、.out.println(notsnottsnamettsscorett); / int i = 0; / for (Student student : stus) / i +; / System.out.println(i + t + student.sno + t + student.sname + tt + student.sscore); / / / / public void BubbleSortStudent() / showStudent(); / for (int i = 0; i stus.length - 1; i+) / for (int j = 0; j stus.le

32、ngth - 1 - i; j+) / Student stu = null; / if (stusj.sscore stusj + 1.sscore) / stu = stusj; / stusj = stusj + 1; / stusj + 1 = stu; / / / / showStudent(); / public static void main(String args) 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9

33、3 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 Student stus = new Student30; int i ; /初始化学生信息 for (i = 0; i stus.length; i+) stusi = new Student(getSno(), getChineseName(), getScore(); /输出排序前的学生信息 System.out.println(排序前的学生信息为:); System.out.println(not snott snamet sscorett); i = 0; for

34、(Student student : stus) i +; System.out.printf(%dt %8dt %st %2dn, i, student.sno, student.sname, student.sscore); /根据学生信息排序 for (i = 0; i stus.length - 1; i+) for (int j = 0; j stus.length - 1 - i; j+) Student stu = null; if (stusj.sscore stusj + 1.sscore) stu = stusj; stusj = stusj + 1; stusj + 1

35、= stu; System.out.println(排序后的学生信息为:); /输出排序后的学生信息 System.out.println(not snott snamet sscorett); i = 0; for (Student student : stus) i +; System.out.printf(%dt %8dt %st %2dn, i, student.sno, student.sname, student.sscore); / / 排序前的学生信息为: / no sno sname sscore / 1 1280591628 孟启 72 / 2 1500243474 郎才山

36、 68 / 3 390668397 卜勤 12 / 4 2019520901 石俊友 25 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 / 5 898282888 柯功天 81 / 6 2090647563 奚维辰 97 / 7 635

37、482375 唐心志 1 / 8 656553726 潘翠 24 / 9 740546992 田国 14 / 10 550620743 夏悦环 46 / 11 394890832 和君 70 / 12 381034011 强伊秋 64 / 13 856713560 谈国贵 23 / 14 826361999 花姣 0 / 15 370337610 诸国维 43 / 16 2055718485 祁美青 73 / 17 2050392097 裴进 86 / 18 433910045 郎博栋 80 / 19 1370837231 严庆 58 / 20 665497702 苏飞博 73 / 21 13

38、46808633 蒋壮 3 / 22 1633589461 危风 92 / 23 1296344369 蔡琰纯 77 / 24 1468787038 明婕桂 88 / 25 1776267125 常柔 12 / 26 970420533 姜姣 10 / 27 290144322 岑丽霭 53 / 28 992916368 干哲 16 / 29 1050700286 娄玲瑗 61 / 30 1917118034 毕莎 70 / 排序后的学生信息为: / no sno sname sscore / 1 2090647563 奚维辰 97 / 2 1633589461 危风 92 / 3 14687

39、87038 明婕桂 88 / 4 2050392097 裴进 86 / 5 898282888 柯功天 81 / 6 433910045 郎博栋 80 / 7 1296344369 蔡琰纯 77 / 8 2055718485 祁美青 73 / 9 665497702 苏飞博 73 / 10 1280591628 孟启 72 / 11 394890832 和君 70 / 12 1917118034 毕莎 70 / 13 1500243474 郎才山 68 / 14 381034011 强伊秋 64 / 15 1050700286 娄玲瑗 61 / 16 1370837231 严庆 58 / 17

40、 290144322 岑丽霭 53 / 18 550620743 夏悦环 46 / 19 370337610 诸国维 43 / 20 2019520901 石俊友 25 / 21 656553726 潘翠 24 / 22 856713560 谈国贵 23 / 23 992916368 干哲 16 / 24 740546992 田国 14 / 25 390668397 卜勤 12 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 1

41、88 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 5. 定义两个类,描述如下: 必做题 5.1 定义一个人类Person: 5.1.1 定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX” 5.1.2 有三个属性:名字、身高、体重 5.2定义一个PersonCreate类: 5.2.1 创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 5.2.2 分别调用对象的

42、sayHello()方法。 6. 定义两个类,描述如下: 必做题 6.1定义一个人类Person: 6.1.1定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX” 6.1.2有三个属性:名字、身高、体重 6.1.3通过构造方法,分别给三个属性赋值 6.2定义一个Constructor类: 6.2.1创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.74 6.2.2分别调用对象的sayHello()方法。 / 26 1776267125 常柔 12 / 27 970420533 姜姣 10 / 28 1346808633

43、蒋壮 3 / 29 635482375 唐心志 1 / 30 826361999 花姣 0 214 215 216 217 218 219 package com.ryanjie.Demo06Homework; /* * ClassName:Person * Description:人类Person * author: Ryanjie * date:2018年8月13日 下午8:50:23 * * Copyright: 2018 Ryanjie Inc. All rights reserved. */ public class Person private String name = null

44、; private double hight; private double weight; /* * Title: Person * Description: TODO * param: param name 名字 * param: param hight 身高 * param: param weight 体重 * throws 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 */ public Person(String name, double hight, double weight) this.name = name; this.hight = hight; this

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1