郭卫东 发表于 2024-8-21 21:44:45

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;
      for (int i = 0; i < arr.length; i++) {
            arr = 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;
      for (int i = 0; i < arr.length; i++) {
            arr = 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.setHobby("敲代码");
      user.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;
      for (int i = 1; i < persons.length; i++) {
            if (persons.getAge() < personAgeMin.getAge()){
                personAgeMin = persons;
            }
      }
      return personAgeMin;
    }
    //求平均年龄
    public static int personAvgAge(Person[] persons){
      int sum = 0;
      for (int i = 1; i < persons.length; i++) {
            sum += persons.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;
    }


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: day02-作业题