02_引用数据类型(类 接口 数组 String类)

一、引用数据类型概述

引用数据类型区别于基本数据类型,它的关键在于 “引用” 二字。它不是 Java 语言本身自带的类型,分为类、接口和数组三种。
基本数据类型和引用数据类型的区别
基本数据类型直接指向数据,引用数据类型直接指向16进制的地址

二、类

  1. 类的定义与作用:类是对现实世界中事物的抽象,它定义了事物的属性和行为。例如,定义一个 “人类”,可以有 “姓名”“年龄” 等属性,以及 “走路”“说话” 等行为。
  2. 对象的创建与使用:通过new关键字创建类的对象,对象是类的具体实例。例如:Student s1 = new Student();,这里s1就是一个引用类型的变量,指向Student类的一个对象。
    对象的创建与使用
  3. 类的成员变量和方法:成员变量用于存储对象的属性值,方法用于定义对象的行为。成员变量和方法可以通过对象来访问和调用。

三、接口

  1. 接口的定义与特点:接口是一种抽象类型,定义了一组方法签名,但不包含方法的实现。接口中的方法默认是public abstract修饰的,成员属性默认是public static final修饰的,所以接口中没有成员变量,只有静态常量。
  2. 接口的实现与多继承:类通过implements关键字实现接口,一个类可以实现多个接口,从而实现多继承的效果。例如:public class Eagle implements FlyBird {... }。
  3. 接口与类的异同
    • 相同点:Java 接口和类一样,代码保存在.java文件中,编译后的字节码保存在.class文件。接口中定义成员属性和方法的语法和类中类似,只是方法没有方法体。
    • 不同点:接口中的方法必须是抽象的(Java 8 之后可以在接口中定义方法体),而类只有抽象类才能拥有抽象方法;接口可以多继承而类不允许多继承;接口不能被实例化,没有构造方法,而抽象类虽然也不能被实例化,但可以拥有构造方法;接口中没有成员变量(只有常量),类乃至抽象类中都拥有成员变量;接口中不能有静态方法或者静态代码块。

四、数组

  1. 数组的定义与声明:数组是一种线性结构的数据结构,用于存储同一类型的数据集合。数组本身是引用数据类型,可以存储基本数据类型或引用数据类型。声明数组变量时,需要给定数组类型和变量名,例如:int[] a; 或int a[];。
    int数组在存储示例
  2. 数组的创建与初始化:使用new运算符创建数组,并可以指定数组的长度。例如:int[] a = new int[10];,创建了一个可以存储 10 个整数的数组,数组元素默认初始化为 0。也可以在声明数组的同时进行初始化,如:int[] a = {1, 2, 3, 4, 5};。
  3. 数组的访问与操作:通过数组下标访问数组元素,下标从 0 开始。可以使用循环来遍历数组元素,也可以利用Arrays类的方法对数组进行操作,如Arrays.toString(a)用于将数组转换为字符串输出,如果直接输出只会输出它在存储中的地址位置。Arrays.sort(a)用于对数组进行排序。
  4. 多维数组:Java 中实际上没有多维数组,只有一维数组,多维数组被解释为 “数组的数组”。例如,二维数组可以理解为数组中的每个元素又是一个数组。定义二维数组的方式如:int[][] a = new int[3][4];表示创建了一个 3 行 4 列的二维数组。

五、String 类

  1. String 类的特点:String类是 Java 中常用的引用数据类型,用于表示字符串。虽然按常理引用数据类型变量存储的是地址,但String类有些特殊,它重写了toString方法,所以输出String类型变量时显示的是字符串内容。String类是不可变对象,由final修饰,当对String对象进行修改时,实际上是创建了一个新的String对象。
    String类
  2. String 类的常用方法:
    • length()方法用于获取字符串的长度。
    • equals()方法用于比较两个字符串的内容是否相等。
    • compareTo()方法用于比较两个字符串的大小。
    • charAt()方法用于获取指定位置的字符。
    • indexOf()系列方法用于查找字符或字符串在字符串中出现的位置。
posted @ 2025-07-07 08:01  HuCiZhi  阅读(69)  评论(0)    收藏  举报