day02-作业题

打印 上一主题 下一主题

主题 1736|帖子 1736|积分 5208

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、简答题

请说出方法定义的全格式
  1. 访问修饰符 静态修饰符 返回值 方法名(参数列表){方法体;retrun 返回值;}
复制代码
请说出方法重载的概念
  1. 在一个类中,可以定义方法名相同,参数列表不相同(参数类型、参数个数或者参数顺序不同)的方法
复制代码
请简述什么是类,什么是对象
  1. 类:用户自定义的数据类型,用来描述相同属性和行为的对象集合。
  2. 对象:是根据类作为模板创建的实例,具有类所有的属性和行为。
复制代码
请简述this关键字的概述及作用
  1. this是一个关键字表示方法调用者的地址值。
  2. 主要作用:区分同名的成员变量和局部变量和访问当前对象的成员属性、成员方法、构造方法。
复制代码
请简述private关键字的概述及作用
  1. private:是一个访问修饰符。表示当前属性或者行为为该类私有的,其他类不可以直接访问。主要在面向对象中实现封装。
  2. 作用:隐藏对象内部细节,仅允许公共的方法进行访问和操作对象的状态,有助于保护对象的状态不受外部直接访问和修改的影响,可以防止用户的恶意操作。
复制代码
请简述构造方法的作用和留意事项
  1. 构造方法用于帮助用户创建对象和给成员属性赋值,也可以在构造方法进行一系列的初始化操作。
  2. 注意事项:1.不能有返回值  2.构造方法名必须和类名相同
复制代码
请简述封装有哪些体现以及好处
  1. 使用private访问修饰符来限制成员变量的访问权限,设计公共的方法setter和getter方法来允许外部代码访问和修改对象的状态。而不直接暴露对象的内部实现细节。
  2. 安全性:隐藏对象内部的细节,保护对象不能受外部直接访问和修改的影响。
  3. 复用性:对象可以在不同的上下文中被重复使用。
  4. 降低复杂度:外部代码只需要关注如何使用对象的功能,而不需要了解对象的内部复杂逻辑,从而减少了代码的复杂度和耦合度。
复制代码
二、编程题

  1. /*
  2.         分析以下需求并完成代码
  3.                 设计一个方法,接收一个整数数组,能同时返回该数组的最大值和最小值
  4.                 提示:return后面只能写一个值
  5. */
  6. public class Test02{
  7.      public static void main(String[] args) {
  8.         Random r = new Random();
  9.         int[] arr = new int[10];
  10.         for (int i = 0; i < arr.length; i++) {
  11.             arr[i] = r.nextInt(100) + 1;
  12.         }
  13.         System.out.println(Arrays.toString(arr));
  14.         System.out.println("该数组的最大值为:" + getMax(arr));
  15.         System.out.println("该数组的最小值为:" + getMin(arr));
  16.     }
  17.     public static int getMax(int[] arr){
  18.         int max = Integer.MIN_VALUE;
  19.         for (int i : arr) {
  20.             max = Math.max(i,max);
  21.         }
  22.         return max;
  23.     }
  24.     public static int getMin(int[] arr){
  25.         int min = Integer.MAX_VALUE;
  26.         for (int i : arr) {
  27.             min = Math.min(i,min);
  28.         }
  29.         return min;
  30.     }
  31.    
  32. }
复制代码
  1. /*
  2.         分析以下需求并完成代码
  3.         设计一个方法,接收一个整数数组,计算数组中小于平均值的元素个数并返回
  4.              
  5. */
  6. public class Test03{
  7.      public static void main(String[] args) {
  8.         Random r = new Random();
  9.         int[] arr = new int[10];
  10.         for (int i = 0; i < arr.length; i++) {
  11.             arr[i] = r.nextInt(100) + 1;
  12.         }
  13.         System.out.println(Arrays.toString(arr));
  14.         System.out.println("小于平均数的值有:" + ltAvgCount(arr) + "个");
  15.     }
  16.     public static int ltAvgCount(int[] arr){
  17.         int sum = 0;
  18.         for (int i : arr) {
  19.             sum += i;
  20.         }
  21.         int avg = sum / arr.length;
  22.         int count = 0;//统计平均数的个数
  23.         for (int i : arr) {
  24.             if (i < avg){
  25.                 count++;
  26.             }
  27.         }
  28.         return count;
  29.     }
  30.    
  31. }
复制代码
  1. /*
  2.         分析以下需求并完成代码
  3.         编写实体类User,成员变量包含name姓名、年龄age、爱好hobby
  4.         定义测试类,在main方法中完成
  5.             实例化三个User对象,属性分别为
  6.                 "慕容雪痕",17,"弹钢琴"
  7.                 "燕清舞",16,"跳舞"
  8.                 "夏诗韵",21,"唱歌"
  9.             将三个对象添加到合适的数组中   
  10.                                                    
  11.             遍历数组,将年龄小于18岁的对象,爱好修改为"敲代码"
  12.             遍历修改后的数组,控制台效果如下
  13.                     慕容雪痕 17 敲代码
  14.                 燕清舞 16 敲代码
  15.                 夏诗韵 21 唱歌
  16. */
  17. public class TestUser{
  18. public static void main(String[] args) {
  19.         User[] user = {new User("慕容雪痕",17,"弹钢琴"),new User("燕清舞",16,"跳舞"),
  20.                 new User( "夏诗韵",21,"唱歌")};
  21.         user[0].setHobby("敲代码");
  22.         user[1].setHobby("敲代码");
  23.         for (User user1 : user) {
  24.             System.out.print(user1.getName() + " ");
  25.             System.out.print(user1.getAge() + " ");
  26.             System.out.print(user1.getHobby());
  27.             System.out.println();
  28.         }
  29.     }
  30. }
  31. class User{
  32.     private String name;
  33.     private Integer age;
  34.     private String hobby;
  35.     public User() {
  36.     }
  37.     public User(String name, Integer age, String hobby) {
  38.         this.name = name;
  39.         this.age = age;
  40.         this.hobby = hobby;
  41.     }
  42.     public String getName() {
  43.         return name;
  44.     }
  45.     public void setName(String name) {
  46.         this.name = name;
  47.     }
  48.     public Integer getAge() {
  49.         return age;
  50.     }
  51.     public void setAge(Integer age) {
  52.         this.age = age;
  53.     }
  54.     public String getHobby() {
  55.         return hobby;
  56.     }
  57.     public void setHobby(String hobby) {
  58.         this.hobby = hobby;
  59.     }
  60. }
复制代码
  1. /*
  2.         分析以下需求并完成代码
  3.         编写实体类Person,成员变量包含姓名name、年龄age
  4.         定义测试类,在main方法中完成
  5.             定义方法getMinAge(Person[] persons),返回数组中最小的年龄
  6.             定义方法getAvgAge(Person[] persons),返回数组中的对象平均年龄
  7.             实例化三个Person对象,属性分别为
  8.                 "玄德",39
  9.                 "云长",35
  10.                 "翼德",34
  11.             将三个对象添加到合适的数组中,将数组作为参数测试上述两个方法
  12. */
  13. public class TestPerson{
  14.     public static void main(String[] args) {
  15.         Person[] persons = {new Person("玄德",39),new Person("云长",35),new Person("翼德",34)};
  16.         Person minAgePerson = findMinAge(persons);
  17.         System.out.println("最小年龄为:" + minAgePerson.getName() + "  岁数为:" + minAgePerson.getAge());
  18.         System.out.println("平均年龄为:" + personAvgAge(persons));
  19.     }
  20.     //求岁数最小的人
  21.     public static Person findMinAge(Person[] persons){
  22.         Person personAgeMin = persons[0];
  23.         for (int i = 1; i < persons.length; i++) {
  24.             if (persons[i].getAge() < personAgeMin.getAge()){
  25.                 personAgeMin = persons[i];
  26.             }
  27.         }
  28.         return personAgeMin;
  29.     }
  30.     //求平均年龄
  31.     public static int personAvgAge(Person[] persons){
  32.         int sum = 0;
  33.         for (int i = 1; i < persons.length; i++) {
  34.             sum += persons[i].getAge();
  35.         }
  36.         return sum / persons.length;
  37.     }
  38. }
  39. class Person{
  40.     private String name;
  41.     private Integer age;
  42.     public Person() {
  43.     }
  44.     public Person(String name, Integer age) {
  45.         this.name = name;
  46.         this.age = age;
  47.     }
  48.     public String getName() {
  49.         return name;
  50.     }
  51.     public void setName(String name) {
  52.         this.name = name;
  53.     }
  54.     public Integer getAge() {
  55.         return age;
  56.     }
  57.     public void setAge(Integer age) {
  58.         this.age = age;
  59.     }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表