IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 六. 对象数组 -> 正文阅读

[Java知识库]六. 对象数组

目标

?? 脑暴主题:Java基础第6章-(对象数组)

?? 记录时间:2021年10月14日 18:10

什么是对象数组

对象数组 也就是 :

对象数组存储的是 对象名(地址值)

为什么使用对象数组

如果创建许多学生对象,如何存储管理这些学生对象,可以用数组来解决,这样的数组我们叫:对象数组

对象数组声明的类型是类,如下:

Student? [ ] students =new Student[5];

这是一个Student类型的数组,意味着里面只能存放Student类型的数据(对象)。所以数组叫对象数组

//这是一个String类型的数组,只能放Strong类型的数据
String [] arrs = new String[5];
//这是一个int类型的数组,只能放整数:10,20,30
int [] arr2 = new int [5];
//这是一个double类型的数组,只能放小数:10.5,20.0,35.5
double [] arr3= new double[5];

对象数组的概念

只要是数组都分为两种 【静态】和【动态】int[] arr = new int [9];

// 定义长度,未给里面内容赋值,所以他的内容是可以发生改变的所以我们称之为(动态数组)

int[] arr = new int[] { 1,2,3,4....}; // 定义元素内容,他的内容就是他的长度,因他的长度和内容都已经被固定了,所以我们称之为( 静态数组)

java 数组对象也分为【静态】和【动态】

对象数组的使用

和数组一样使用,只不过他存储的类型是(地址值) 也就是一个空间, 使用格式和数组一样

对象数组的注意事项:

你创建一个对象, 也就是 new 一个对象,他是有一个对应的地址值的, 但是如果在循环里面, 或者重复给他定义一个空间他就会,重新创建一个空间的(地址值)

原来的地址值(空间) 就会被垃圾回收机制给回收! 新创建(new)的空间,会取代之前的那个空间!

步骤 :
    1.先定义一个 类,创建无参构造和带参构造 
	2.数组对象,不能直接遍历获取他的内容,所以我需要用到Getter 和Serter的 Gerter 间接获取


    public  class 子类{

        // 无参构造
        public 子类(){
        }
// 带参构造,方法1.
        public 子类(String name, int age){   //这里是两个不同的数据类型   必须创建 带参构造才能 赋相应类型的值
            this.name=name; //把构造方法的形参元素 =赋值给成员变量
            this.age=age;    //把构造方法的形参元素 =赋值给成员变量
        }
        //数组对象,不能直接遍历获取他的内容,所以我需要用到Getter 和Serter的 Gerter
// Getter 获取,间接使用
        public  String  getName(){
            return  name;  //返回
        }
        // Getter 获取,间接使用
        public  int  getAge(){
            return  age; //返回
        }
    }
	1. 创建实现类
	2. 创建子类对象数组、
            3. 创建实例化对象,赋值, 也可以直接new 类名(元素内容)



    // 创建子类对象数组
    子类[]  arr = new 子类[5];
    //方法1: 创建实例化对象来 赋值
    子类   a1  =new 子类(“迪迦”,19);
    arr[0]=a1;   //把a1的元素内容赋值给 arr数组的索引0
// 方法2: 直接new 类名(元素内容来赋值)
    arr[1]  = new 子类(“泰罗”,12);
    arr[2]  = new  子类(“赛文”,15);
            // 遍历输出 数组对象 的元素内容
            for(int i=0; i<arr.length; i++){
        System.out.println(arr[i].getName()+“,”+arr[i].getAge()); //数组索引。 获取元素内容
    }

重点理解: 只要是引用类型的都可以 被 [新地址值取代]

// 基本步骤:
     1.创建一个数组
      int[] arr  =new int[10];

    1.2 用相同的数组名, 再来 创建一个新的数组
        arr =int[11];

  这样实际上: arr 数组的空间变成了 11的这个空间,  10的空间因为没有标签指向,就回被垃圾回收机制回收! 
       但是: 10的空间数据,不会给 11的空间, 但是可以使用 Arrays 工具类的方法, copy() 把之前数组的空间数据,复制给 11的数组
           
           
           
      2.创建一个对象
          Demo01  obj  =new Demo01();

       2.1 对这个对象存储一些元素值
           obj.name='重置';

      2.2 再创建一个同对象名的 对象
          也就是在生成一个空间,把地址值给这个对象名
          
          obj =new Demo01();
        
      //  注意: 这样都是,重新开辟了一个空间, 把地址值给对应的 数组名或者对象名, 但是之前创建的空间,就回因为没有标签指向,就会被垃圾回收机制给回收!
          
            
           
        重点: 在     循环里面也会导致重载!
            
            for(int i=0; i<30; i++){
                Demo obj =new Demo();
                
            }
        // 每一次循环,都会给这个对象,重新分配空间, 但是模板是一样的, 类的内容就是对象的模板!
       

注意: 只要是引用类型的, 都可以这样!

如有不足,请指点,{个人理解}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:39:07  更:2021-10-15 11:39:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:05:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码