java基础(7):自定义类、ArrayList集合

1. 引用数据类型(类)

1.1 引用数据类型分类

提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类、Random类。

我们可以把类的类型为两种:

第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。

第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。

这里我们主要介绍第二种情况的简单使用。

1.2 自定义数据类型概述

我们在Java中,将现实生活中的事物抽象成了代码。这时,我们可以使用自定义的数据类型(类)来描述(映射)现实生活中的事物。

类,它是引用数据类型,与之前学习的所有引用数据类型相同,自定义类也是一种数据类型。只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物。

1.3 类的定义与使用

java代码映射成现实事物的过程就是定义类的过程。

我们就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。

目前,我们只关注类中的属性,类中的方法在面向对象部分再进行学习。

1.3.1 类的定义格式

类的定义格式

创建java文件,与类名相同
public class 类名{
    数据类型  属性名称1;
    数据类型  属性名称2;
    …
}

通过类的定义格式,来进行手机类的描述,如下所示

public class Phone {
    /*
     * 属性
     */
    String brand;// 品牌型号
    String color;// 颜色
    double size; // 尺寸大小
}

上述代码,就是创建一个类的的过程,类的名称我们给起名为Phone,类中包含了三个属性(brand品牌型号、color颜色、size尺寸大小)。注意,类中定义的属性没有个数要求。

1.3.2 类的使用格式

Phone类定义好后,我们就可以使用这个类了,使用方式和使用引用数据类型Scanner类相似。格式如下:

导包:我们将所有的类放到同一个文件夹下,可以避免导包。
创建对象:数据类型  变量名 = new 数据类型();
调用方法:目前我们定义的自定义类不涉及方法,只是属性(自定义类中的方法部分在面向对象部分讲解)
访问属性:变量名.属性 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)

当有了Phone数据类型的变量后,我们就可以使用Phone类中的属性了。对属性的访问我们来演示一下,如下所示:

public class Test {
    public static void main(String[] args) {
        //定义了一个Phone类型的变量p
        Phone p = new Phone();
        /*
         * 通过p,使用Phone中的属性
         */
        //访问p中的brand品牌属性
p.brand = "苹果6s";
//访问p中的color颜色属性
        p.color = "白色";
//访问p中的size尺寸大小属性
p.size = 5.5;

System.out.println("手机品牌为" + p.brand);
System.out.println("手机颜色为" + p.color);
System.out.println("手机尺寸大小为" + p.size);
    }
}

运行结果如下所示

1.3.3 自定义类型注意事项与内存图

上述代码中,通过类Phone创建出来的变量p,它相当于我们生活中的盒子,里面包含了它能够使用的属性。

通过 p.属性名 就可以对属性进行操作

与引用类型数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值,这里可以通过内存图简单解释。

1.4 自定义类型练习

学习了引用数据类型(类)以后,我们就能够使用类描述任何东西了。看几个具体的描述,如下:

电饭锅,包含属性(品牌、容量大小、颜色等)

汽车,包含属性(品牌、排量、类型等)

学生,包含属性(姓名,年龄,性别等)

2. ArrayList集合

在前面我们学习了数组,数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的学生,由于不停有新生来报道,同时也有学生毕业离开学校,这时学生的数目很难确定。为了保存这些数目不确定的元素,JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合。在这里,我们先介绍ArrayList集合,其他集合在后续课程中学习。

ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

2.1 集合的创建

创建集合的常用格式在此说明一下:

导包:import java.util.ArrayList;

创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:

ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();

集合中存储的元素,只能为<>括号中指定的数据类型元素;

“<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;

下面给出8种基本数据类型所对应的引用数据类型表示形式:

我们通过举几个例子,来明确集合的创建方式:

存储String类型的元素

ArrayList<String> list = new ArrayList<String>();

存储int类型的数据

ArrayList<Integer> list = new ArrayList<Integer>();

存储Phone类型的数据

ArrayList<Phone> list = new ArrayList<Phone>();

2.2 集合中常用方法

接下来,我们来学习下ArrayList集合提供的一些常用方法,如下表:


方法声明


功能描述


boolean add(Object obj


将指定元素obj追加到集合的末尾


Object get(int index


返回集合中指定位置上的元素


int size()


返回集合中的元素个数

通过代码演示上述方法的使用。ArrayListDemo01.java

import java.util.ArrayList;
public class ArrayListDemo01 {
    public static void main(String[] args) {
        // 创建ArrayList集合
        ArrayList<String> list = new ArrayList<String>();
        // 向集合中添加元素
        list.add("stu1");
        list.add("stu2");
        list.add("stu3");
        list.add("stu4");
        // 获取集合中元素的个数
        System.out.println("集合的长度:" + list.size());
        // 取出并打印指定位置的元素
        System.out.println("第1个元素是:" + list.get(0));
        System.out.println("第2个元素是:" + list.get(1));
        System.out.println("第3个元素是:" + list.get(2));
        System.out.println("第4个元素是:" + list.get(3));
    }
}

强调一点,ArrayList集合相当于是一个长度可变的数组,所以访问集合中的元素也是采用索引方式访问,第一个元素存储在索引0的位置,第二个元素存储在索引1的位置,依次类推。

2.3 集合的遍历

通过集合遍历,得到集合中每个元素,这是集合中最常见的操作。集合的遍历与数组的遍历很像,都是通过索引的方式,集合遍历方式如下:ArrayListDemo02.java

import java.util.ArrayList;
public class ArrayListDemo02 {
     public static void main(String[] args) {
         //创建ArrayList集合
         ArrayList<Integer> list = new ArrayList<Integer>();
        //添加元素到集合
        list.add(13);
        list.add(15);
        list.add(22);
        list.add(29);
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //通过索引,获取到集合中每个元素
             int n = list.get(i);
            System.out.println(n);
        }
    }
}

上述代码中,第5行定义了一个可以存储int元素的集合;第7-10行,实现将int类型数值存储到集合中;第12-16行,实现遍历集合元素。这里要强调一点,get方法返回值的类型为集合中元素的类型。

2.4 集合中的常用方法补充

ArrayList集合提供的一些常用方法,如下表:


方法声明


功能描述


boolean add(int index,  Object obj


将指定元素obj插入到集合中指定的位置


Object remve(int index


从集合中删除指定index处的元素,返回该元素


void clear()


清空集合中所有元素


Object set(int index, Object obj


用指定元素obj替代集合中指定位置上的元素

boolean add(int index,  Object obj)

  功能:在集合中指定index位置,添加新元素obj

  功能说明:假设集合list中有元素[“java”,“javaEE”],当使用add(1,“javaWeb”)后,集合list中的元素为[“java”,“javaWeb”,“JavaEE”]。

Object set(int index, Object obj)

  功能:用指定元素obj替代集合中指定index位置的元素

  功能说明:假设集合list中有元素[“java”,“javaEE”],当使用set(0,“javaWeb”)后,集合list中的元素为[“javaWeb”,“JavaEE”]。

Object remve(int index)

  功能:从集合中删除指定index处的元素,返回该元素

  功能说明:假设集合list中有元素[“java”,“javaEE”],当使用remove(0)后,集合list中的元素为[“JavaEE”],返回值为“java”。

void clear()

  功能:清空集合中所有元素

  功能说明:假设集合list中有元素[“java”,“javaEE”],当使用clear()后,集合list中的元素为空[]。

原文地址:https://www.cnblogs.com/liuhui0308/p/11631577.html

时间: 2024-08-04 08:27:25

java基础(7):自定义类、ArrayList集合的相关文章

Java基础之装饰类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Java基础之装饰类:简介:首先他是一种设计模式属于23种设计模式之一,英文叫Decorator Pattern.又叫装饰者模式.装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来

【Java菜鸟学习总结】Java基础知识(类)

目录 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 2.类 3.static关键字 4.final关键字 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 1.1.面向对象编程的特征 面向对象编程(OOP)的三大特征 { 封装; 继承; 多态; } 1.2.类与对象概述 类与对象是面向对象的核心概念. 类与对象 { 类; // 类是对于一类事物的描述,是抽象的.概念的定义. 对象; // 对象是实际存在的该类事物的每个个体,因而也别称为实例. } 2.类 2.

Java基础之File类的使用

Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法和常用方法: 在Java中File类在IO流中被频繁使用,可以使用一个文件路径来表示在特定位置上的文件,但是需要注意的是这个路径只表示一个文件抽象的概念, 文件到底在不在这个路径下是不确定,换句话说,是不能通过文件路径来判断文件是否存在. 构造方法 File(File parent, String 

Java基础知识总结之类的集合

集合也叫作容器类.它的功能相当于一个容器. Java的集合(容器),它是用来”装对象的“. Set集合 Set集合几乎等同于Collection集合.它们的行为几乎一致. 遍历Set的两种方式: 1.用迭代器 2.用foreach循环 HashSet HashSet的存储机制: 1.当有元素加进来的时,HashSet会调用该对象的hashCode()方法,得到一个int值. 2.根据hashCode的()返回的int值,计算出它在HashSet中的存储位置(底层实际采用数组存储元素的索引,计算得

Java基础学习笔记十五 集合、迭代器、泛型

Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 集合中存储的元素必须是引用类型数据 集合继承关系图 ArrayList的继承关系: 查看ArrayList类发现它继承了抽象类AbstractList同时实现接口List,而List接口又继承了Collection接口.Collec

Java基础学习笔记十六 集合框架(二)

List List接口的特点: 它是一个元素存取有序的集合.例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理). 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素. List接口的常用子类有: ArrayList集合 LinkedList集合 List接口的特有方法(带索引的方法)1.增加元素方法 add(Object e):向集合末尾

Java基础学习笔记六 Java基础语法之类和ArrayList

引用数据类型 引用数据类型分类,提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类.我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用. 第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用. 这里我们主要介绍第二种情况的简单使用. 自定义数据类型概述 在Java中,将现实生活中的事物抽象成了代码.这时,我们可以使用自定义的

Random类&amp;ArrayList集合学习

基础题目 第一题:需求实现 随机验证码. 随机生成十组六位字符组成的验证码. 验证码由大小写字母.数字字符组成. 代码实现,效果如图所示: 开发提示: 使用字符数组保存原始字符,利用Random类生成随机索引. 参考答案: public class Test1 { public static void main(String[] args) { for (int i = 0; i < 10; i++) { String s = verifyCode(); System.out.println(&qu

黑马程序员--java基础之其他类

-------android培训.java培训.期待与您交流! ---------- Java基础中的其他对象:System 关于System类的用法: /* System:类中的方法和属性都是静态的 out:标准输出,默认是控制台 in:标准输入,默认是键盘 获取系统属性信息:Properties getProperties(); */ import java.util.*; class SystemDemo { public static void main(String[] args) {