当前位置: 首页 > 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;} 
http://www.lryc.cn/news/428769.html

相关文章:

  • torch.cuda.set_divice()
  • <数据集>RSOD数据集<目标检测>
  • 企业高性能web服务器之Nginx
  • 11-sentinel利用nacos作持久化
  • 密码学之哈希算法
  • 杰发科技AC7801——GPIO通过寄存器地址控制高低电平
  • 代码随想录算法训练营第三十一天| 01背包问题 二维 01背包问题 一维 416. 分割等和子集
  • github删除历史所有commit
  • C++前向声明简介
  • 华为手机是越贵越好吗?
  • 【java基础】IDEA 的断点调试(Debug)
  • MPLS相关实验
  • 从零开始学习SLAM(五):极几何与极约束
  • Freertos学习笔记
  • 线程(Thread)的使用方法和锁(同步代码块,lock锁)的问题
  • Java 反射机制
  • 详解MBR分区结构以及GPT分区结构
  • jvm 调优篇
  • Spring AOP应用指南:概念、通知与表达式分析
  • 汽车的UDS诊断01
  • MySQL——单表查询(二)按条件查询(6)DISTINCT 关键字作用于多个字段
  • python从入门到精通:数据容器
  • Java 中都有哪些引用类型?
  • 使用 Dify 和 AI 大模型理解视频内容:Qwen 2 VL 72B
  • mybatisplus 通过xml 定义接口
  • 上周稼先社区的活动
  • day_45
  • SQL 时间盲注 (injection 第十六关)
  • nginx核心配置示例
  • 【面向对象】04面向对象三大特征之——继承