当前位置: 首页 > news >正文

day02-作业题

一、简答题

请说出方法定义的全格式

访问修饰符 静态修饰符 返回值 方法名(参数列表){方法体;retrun 返回值;}

请说出方法重载的概念

在一个类中,可以定义方法名相同,参数列表不相同(参数类型、参数个数或者参数顺序不同)的方法

请简述什么是类,什么是对象

类:用户自定义的数据类型,用来描述相同属性和行为的对象集合。
对象:是根据类作为模板创建的实例,具有类所有的属性和行为。

请简述this关键字的概述及作用

this是一个关键字表示方法调用者的地址值。
主要作用:区分同名的成员变量和局部变量和访问当前对象的成员属性、成员方法、构造方法。

请简述private关键字的概述及作用

private:是一个访问修饰符。表示当前属性或者行为为该类私有的,其他类不可以直接访问。主要在面向对象中实现封装。
作用:隐藏对象内部细节,仅允许公共的方法进行访问和操作对象的状态,有助于保护对象的状态不受外部直接访问和修改的影响,可以防止用户的恶意操作。

请简述构造方法的作用和注意事项

构造方法用于帮助用户创建对象和给成员属性赋值,也可以在构造方法进行一系列的初始化操作。
注意事项:1.不能有返回值  2.构造方法名必须和类名相同

请简述封装有哪些体现以及好处

使用private访问修饰符来限制成员变量的访问权限,设计公共的方法setter和getter方法来允许外部代码访问和修改对象的状态。而不直接暴露对象的内部实现细节。
安全性:隐藏对象内部的细节,保护对象不能受外部直接访问和修改的影响。
复用性:对象可以在不同的上下文中被重复使用。
降低复杂度:外部代码只需要关注如何使用对象的功能,而不需要了解对象的内部复杂逻辑,从而减少了代码的复杂度和耦合度。

二、编程题

/*分析以下需求并完成代码设计一个方法,接收一个整数数组,能同时返回该数组的最大值和最小值提示:return后面只能写一个值
*/
public class Test02{public static void main(String[] args) {Random r = new Random();int[] arr = new int[10];for (int i = 0; i < arr.length; i++) {arr[i] = r.nextInt(100) + 1;}System.out.println(Arrays.toString(arr));System.out.println("该数组的最大值为:" + getMax(arr));System.out.println("该数组的最小值为:" + getMin(arr));}public static int getMax(int[] arr){int max = Integer.MIN_VALUE;for (int i : arr) {max = Math.max(i,max);}return max;}public static int getMin(int[] arr){int min = Integer.MAX_VALUE;for (int i : arr) {min = Math.min(i,min);}return min;}}
/*分析以下需求并完成代码设计一个方法,接收一个整数数组,计算数组中小于平均值的元素个数并返回*/
public class Test03{public static void main(String[] args) {Random r = new Random();int[] arr = new int[10];for (int i = 0; i < arr.length; i++) {arr[i] = r.nextInt(100) + 1;}System.out.println(Arrays.toString(arr));System.out.println("小于平均数的值有:" + ltAvgCount(arr) + "个");}public static int ltAvgCount(int[] arr){int sum = 0;for (int i : arr) {sum += i;}int avg = sum / arr.length;int count = 0;//统计平均数的个数for (int i : arr) {if (i < avg){count++;}}return count;}}
/*分析以下需求并完成代码编写实体类User,成员变量包含name姓名、年龄age、爱好hobby定义测试类,在main方法中完成实例化三个User对象,属性分别为"慕容雪痕",17,"弹钢琴""燕清舞",16,"跳舞""夏诗韵",21,"唱歌"将三个对象添加到合适的数组中    遍历数组,将年龄小于18岁的对象,爱好修改为"敲代码"遍历修改后的数组,控制台效果如下慕容雪痕 17 敲代码燕清舞 16 敲代码夏诗韵 21 唱歌
*/
public class TestUser{public static void main(String[] args) {User[] user = {new User("慕容雪痕",17,"弹钢琴"),new User("燕清舞",16,"跳舞"),new User( "夏诗韵",21,"唱歌")};user[0].setHobby("敲代码");user[1].setHobby("敲代码");for (User user1 : user) {System.out.print(user1.getName() + " ");System.out.print(user1.getAge() + " ");System.out.print(user1.getHobby());System.out.println();}}
}
class User{private String name;private Integer age;private String hobby;public User() {}public User(String name, Integer age, String hobby) {this.name = name;this.age = age;this.hobby = hobby;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}
}
/*分析以下需求并完成代码编写实体类Person,成员变量包含姓名name、年龄age定义测试类,在main方法中完成定义方法getMinAge(Person[] persons),返回数组中最小的年龄定义方法getAvgAge(Person[] persons),返回数组中的对象平均年龄实例化三个Person对象,属性分别为"玄德",39"云长",35"翼德",34将三个对象添加到合适的数组中,将数组作为参数测试上述两个方法
*/
public class TestPerson{public static void main(String[] args) {Person[] persons = {new Person("玄德",39),new Person("云长",35),new Person("翼德",34)};Person minAgePerson = findMinAge(persons);System.out.println("最小年龄为:" + minAgePerson.getName() + "  岁数为:" + minAgePerson.getAge());System.out.println("平均年龄为:" + personAvgAge(persons));}//求岁数最小的人public static Person findMinAge(Person[] persons){Person personAgeMin = persons[0];for (int i = 1; i < persons.length; i++) {if (persons[i].getAge() < personAgeMin.getAge()){personAgeMin = persons[i];}}return personAgeMin;}//求平均年龄public static int personAvgAge(Person[] persons){int sum = 0;for (int i = 1; i < persons.length; i++) {sum += persons[i].getAge();}return sum / persons.length;}
}
class Person{private String name;private Integer age;public Person() {}public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;} 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小学二年级数学精选试题
  • 学习笔记——交通安全分析30
  • 企业高性能web服务器---nginx详解(基础介绍配置,核心配置)
  • MySQL系列—MySQL编译安装常见问题(或缺少依赖)及解决方法,MySQL 编译安装时需要安装的依赖(全)
  • 系统架构:分而治之
  • mysql数据库基础使用
  • NVR方案背景与产品介绍与构建一套完整的NVR产品解决方案
  • laravel学习之Eloquent和Collect
  • 高考志愿智能推荐系统-计算机毕设Java|springboot实战项目
  • SQL - 增、改、删
  • Vue UI 组件库
  • Cordova打包apk
  • 虚拟网络设备和端口概念:Bridge(桥)和Tap
  • Windows系统命令
  • 【Rust光年纪】超越并发:Rust数据流处理库全面解读
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Github访问慢解决办法
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java深入 - 深入理解Java集合
  • jdbc就是这么简单
  • overflow: hidden IE7无效
  • PHP面试之三:MySQL数据库
  • Unix命令
  • yii2中session跨域名的问题
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 前端之React实战:创建跨平台的项目架构
  • 如何进阶一名有竞争力的程序员?
  • 思考 CSS 架构
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • # C++之functional库用法整理
  • (3)llvm ir转换过程
  • (Charles)如何抓取手机http的报文
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计ssm电影分享网站
  • (九)One-Wire总线-DS18B20
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)求1到1亿间的质数或素数
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)Scala的“=”符号简介
  • (转)视频码率,帧率和分辨率的联系与区别
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net wcf memory gates checking failed
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 表达式计算:Expression Evaluator
  • .net2005怎么读string形的xml,不是xml文件。
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout