第七天 自定义数据类型&ArrayList集合【悟空教程】

本文详细介绍了Java中的自定义数据类型,包括类的定义、使用及注意事项,并通过实例展示了如何创建和使用自定义类型。此外,还深入讲解了ArrayList集合,阐述了为何需要集合类,给出了对象数组的案例,详细解析了ArrayList的构造方法和常用成员方法,包括添加、获取、删除和修改元素的操作。最后,提供了ArrayList集合使用的多个实例,包括存储自定义类型、字符串遍历以及综合案例——随机点名器的实现。
摘要由CSDN通过智能技术生成

第七天 自定义数据类型&ArrayList集合【悟空教程】

第07天 自定义数据类型、Arraylist集合

第1章 自定义数据类型

1.1 自定义数据类型概述

任何编程语言都需要将现实生活中的事物抽象成代码。这时可以使用自定义的数据类型(类)来描述(映射)现实事物。

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

1.2 类的定义及使用

1.2.1 类的定义格式及使用格式

代码映射现实事物的过程就是定义类的过程。每个成员变量与要描述的事物属性变量名对应,数据类型对应。

这时,我们便可以将一个事物的多个属性值组织成一个完整的事物作为操作单位。

a) 类的定义格式

创建文件,与类名相同

public class 类名{

数据类型  属性名称;

数据类型  属性名称2;

}

如:

class Person {

String  name;

int  age;

}

 

b) 类的使用格式

类在定义出来之后,必须被使用,不使用虽然没有语法错误,但是没有意义。

自定义类的使用方式与以往的引用数据类型完全相同,如下:

导包:我们将所有的类放到同一个文件夹下,可以避免导包。

创建对象:数据类型  变量名 = new 数据类型();

调用方法: 由于我们定义的类型并不完整,所以现在不涉及调用方法,而是访问属性访问属性:对象名. 属性名 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)

如:

Person p = new Person();

p.name  =  “AngelaBaby”;

p.age = 18;

Person p2 = new Person();

p2.name  =  “黄晓明”;

p2.age = 36;

System.out.println(p.name);  //打印结果:AngelaBaby

System.out.println(p.age); //打印结果:18

System.out.println(p2.name); //打印结果:黄晓明

System.out.println(p2.age);  //打印结果:36

 

1.2.2 自定义类型练习

我们可以将现实生活中的任何事物抽象成一个类,请自定义并使用一种数据类型。如人类、动物类、汽车类、衣服类、玩具类等。

/*

自定义类型 人类

 

属性

姓名  String

年龄  int

性别  String

身高  double

是否热爱java  boolean

*/

 

public class Person

{

//姓名

String name;

//年龄

int age;

//性别

String sex;

//身高

double height;

//是否喜欢java

boolean isLoveJava;

}

 

/*

测试自定义类型 Person类

 

注意事项

自定义类就是引用数据类型 每个对象的属性都有默认值

static修饰的方法 只能调用static修饰的方法或成员变量

指的是

在同一个类中直接访问时,必须使用static修饰

如果通过对象名.方法名 或者 对象名.属性名的方式访问 不需要static饰

*/

public class Test_Person{

public static void main(String[] args){

Person  p = new Person();

 

p.name = "柳岩";

p.age = 38;

p.sex = "女";

p.height = 1.65;

p.isLoveJava = true;

 

System.out.println("姓名:"+p.name);

System.out.println("年龄:"+p.age);

System.out.println("性别:"+p.sex);

System.out.println("身高:"+p.height);

System.out.println("是否喜欢java:"+p.isLoveJava);  

System.out.println("-------------------");

 

Person p2 = new Person();

System.out.println(p2);

System.out.println(p2.name);

System.out.println("年龄:"+p2.age);

System.out.println("性别:"+p2.sex);

System.out.println("身高:"+p2.height);

System.out.println("是否喜欢java:"+p2.isLoveJava);

}

}

 

 

/*

自定义数据类型  商品类

 

商品属性

 

商品编号   String

商品名称   String  

商品单价   double

商品数量   int

商品金额   double

 

创建文件,与类名相同

public class 类名{

数据类型  属性名称;

数据类型  属性名称2;

}

*/

 

public class GoodsItem

{

//商品编号

String id;

//商品名称

String name;

//商品单价

double price;

//商品数量

int number;

//商品金额

double money;

}

 

/*

测试类  测试自定义类型商品类

 

导包 测试类 与 被测试类在同一个文件夹下 不需要导包

创建对象 数据类型 变量名 = new 数据类型();

调用方法 没有方法不调用

访问属性

变量名.属性名  获取值/赋值

*/

public class Test_GoodsItem{

public static void main(String[] args)

{

GoodsItem gs = new GoodsItem();

 

gs.id = "01";

gs.name = "少林寺酥饼核桃";

gs.price = 15.50;

gs.number = 22;

gs.money= gs.price * gs.number;

 

String id= gs.id;

System.out.println(id);

System.out.println(gs.money+20.01);

 

}

}

 

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

  • 这里完成的是不完整的自定义类型,更为完整的自定义类定义方式会在面向对象时详细解释。

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

 

第2章 ArrayList集合

2.1 为什么出现集合类

我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。

而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢?数组和StringBuilder(后面API讲)。

但是呢? StringBuilder的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组。

而对象数组又不能适应变化的需求,因为数组的长度是固定的,这个时候,为了适应变化的需求,Java就提供了集合类供我们使用,由此可见集合的长度是可变的。

 

2.2 对象数组的案例

创建一个学生数组,存储三个学生对象并遍历

public class Student {

private String name;

private int age;

public Student() {

 

}

public Student(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

public class Demo01Array {

public static void main(String[] args) {

//创建学生数组

Student[] students = new Student[3];

 

//创建学生对象

Student s1 = new Student("曹操",40);

Student s2 = new Student("刘备",35);

Student s3 = new Student("孙权",30);

 

//把学生对象作为元素赋值给学生数组

students[0] = s1;

students[1] = s2;

students[2] = s3;

 

//遍历学生数组

for(int x=0; x<students.length; x++) {

Student s = students[x];

//System.out.println(s);

System.out.println(s.getName()+"---"+s.getAge());

}

}

}

 

对象数组的内存图

2.3 ArrayList集合概述

虽然在Java中数组是运算速度最快的容器,但是在实际开发过程中,使用最频繁的数据容器并不是数组,而是ArrayList集合。

ArrayList是Java集合框架体系(Java Collections Framework)中的一员,完整的集合体系会在后边的集合章节中重点介绍。这里介绍必要知识:

ArrayList与数组类似,均将元素从0开始编号,但是它比数组更方便,长度可变就是方便处之一,并且集合与数组访问数据的方式也不同,集合可以调用功能强大的方法来满足不同需求。

 

2.4 ArrayList集合的使用格式

ArrayList同为引用类型,符合引用类型的使用方式,如下:

 

导包:import java.util.ArrayList;

创建对象:

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

类名<集合内元素类型> 变量 = new 类名<集合内元素类型>();

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

注意:集合中只能存储引用数据类型,存储基本类型时,存储的类型为对应每个基本类型对应的引用数据。

int  Integer

double Double

char  Character

ArrayList<Integer>  yyYY = new ArrayList<

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java帮帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值