面向对象与集合的结合

本文介绍了如何将面向对象编程与基础课程中的集合概念结合,通过一个实例展示了如何创建Student类,利用ArrayList存储并操作对象,包括添加、遍历、获取、修改、删除等操作,同时提供了针对身高和姓名的过滤条件进行输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       昨天没有及时更新博客,因为我发现了面向对象单纯的去思考,去面向对象章节的题并没有感觉到有什么难度,但是当面向对象与基础课程中的集合结合起来会有什么新感觉呢,下面介绍一下一经典例题,以及我做题时候的思路微笑微笑微笑微笑

              

    请按以下要求编写代码:

1.  定义Student类,包含以下属性:

    学号、姓名、身高

2.  定义MainApp类,包含main()方法;

3.  在main()方法中,创建一个可以存储Student对象的集合对象;

4.  创建以下几个Student对象:

    学号    姓名    身高

    it001   黄渤    1.72

    it002   孙红雷  1.78

    it003   章子怡  1.64

    it004   杨颖    1.68

5.  将上面几个对象添加到集合中

6.  遍历集合打印每个对象的属性值;

7.  获取并打印集合大小;

8.  获取第3个学员对象,并打印其属性值;

9.  移除掉第4个学员对象;

10. 再次获取并打印集合大小;

11. 将第一个对象替换为以下对象:

    it005   撒贝宁  1.67

12. 遍历集合,打印出身高在1.70以上的学员信息;

13. 遍历集合,打印出“孙”姓的学员信息;



import java.util.ArrayList;

/*
    请按以下要求编写代码:
    1.    定义Student类,包含以下属性:
        学号、姓名、身高
    2.    定义MainApp类,包含main()方法;
    3.    在main()方法中,创建一个可以存储Student对象的集合对象;
    4.    创建以下几个Student对象:
        学号        姓名        身高    
        it001    黄渤        1.72
        it002    孙红雷    1.78
        it003    章子怡    1.64
        it004    杨颖        1.68
    5.    将上面几个对象添加到集合中
    6.    遍历集合打印每个对象的属性值;
    7.    获取并打印集合大小;
    8.    获取第3个学员对象,并打印其属性值;
    9.    移除掉第4个学员对象;
    10.    再次获取并打印集合大小;
    11.    将第一个对象替换为以下对象:
        it005    撒贝宁    1.67
    12.    遍历集合,打印出身高在1.70以上的学员信息;
    13.    遍历集合,打印出“孙”姓的学员信息;

------------------------------------------------------------------------------------------------------------------------------------------
 */
public class MainApp {
    public static void main(String[] args) {
        //3.在main()方法中,创建一个可以存储Student对象的集合对象;
        ArrayList<Student> list = new ArrayList<Student>();
        //4.创建以下几个Student对象:
        //5.将上面几个对象添加到集合中
        list.add(new Student("it001","黄渤", 1.72));
        list.add(new Student("it002","孙红雷", 1.78));
        list.add(new Student("it003","章子怡", 1.64));
        list.add(new Student("it004","杨颖", 1.68));
        //6.遍历集合打印每个对象的属性值;
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            System.out.println(s.getId()+","+s.getName()+","+s.getHeight());
        }
        //7.获取并打印集合大小;
        int size = list.size();
        System.out.println("打印集合大小:" + size);
        //8.获取第3个学员对象,并打印其属性值;
        Student stu = list.get(2);
        System.out.println("第3个学员对象:"+stu.getId()+","+stu.getName()+","+stu.getHeight());
        //9.移除掉第4个学员对象;
        list.remove(3);
        //10.再次获取并打印集合大小;
        size = list.size();
        System.out.println("打印集合大小:" + size);
        //    11.    将第一个对象替换为以下对象: it005    撒贝宁    1.67
        Student student = new Student("it0005", "撒贝宁", 1.67);
        list.set(0, student);
        //12.遍历集合,打印出身高在1.70以上的学员信息;
        //13.遍历集合,打印出“孙”姓的学员信息;
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            //打印出身高在1.70以上的学员信息
            if (s.getHeight() > 1.70) {
                System.out.println("身高在1.70以上的学员信息:"+s.getId()+","+s.getName()+","+s.getHeight());
            }
            //打印出“孙”姓的学员信息;
            if (s.getName().startsWith("孙")) {
                System.out.println("“孙”姓的学员信息:"+s.getId()+","+s.getName()+","+s.getHeight());
            }
        }
    }

-------------------------------------------------------------------------------------------------------------------------------------




package com.itheima.level01_02;
/*
 *     1.    定义Student类,包含以下属性:
        学号、姓名、身高
        it001    黄渤        1.72
 */
public class Student {
    private String id;
    private String name;
    private double height;
    public Student() {
        super();
    }
    public Student(String id, String name, double height) {
        super();
        this.id = id;
        this.name = name;
        this.height = height;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getHeight() {
        return height;
    }
    public void setHeight(double height) {
        this.height = height;
    }
}
====================================================================================================

        大家在看注释的时候需要思考一下咱们调用的方法中,形参的变化和实参的变化,当咱们需要打印出数据的时候是通过直接赋值打印,还是通过地址寻找到变量的值.

        这道题思路很明确,希望大家能在多敲几次代码以后分析一下集合在JVM中的内存使用,这样用最底层的思路去分析这道题,会让大家在以后用面向对象的方法去做题的时候有一个清晰思路,

        这几天疯狂的在练习面向对象的习题,让自己从数组的思路中切换到面向对象的抽象思维中,希望大家一起进步

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值