1.理解引用
class Node{
int val;
Node p=new Node();
Node q=new Node();
p=q;
p.next=q;
p=q.next;
引用是一种只能指向对象的数据类型
一个引用不可以指向另一个引用
引用只能用来指向对象 对象不能指向对象 引用不能指向引用**引用不能同时指向多个对象
public static void main(String[] args) {
//构造一个1 2 3 4的链表
//引用的对象的引用指向对象
Node head=new Node();
//1.定义了head引用 2.构造了Node对象 3.让head引用指向该Node对象
head.val=1;
//修改head引用指向的对象中的val属性
head.next=new Node();
//1.构造了Node对象 2.让head引用指向的对象中的next引用指向该Node对象
head.next.val=2;
head.next.next=new Node();
head.next.next.val=3;
head.next.next.next=new Node();
head.next.next.next.val=4;
引用 =null:引用不指向任何对象
引用= =null:返回引用当前是否没有指向对象
引用==!null:返回引用当前是否又指向任何对象
在任意时刻,:
一个引用最多只能指向一个对象
一个对象可以同时被多个引用指向
引用数据类型:
1.class类型的引用
2.interface类型的引用
3.数组类型的引用
class A{…}
class AA extends A{…}
class AAA{…}
A p=什么类型的对象
class 类型的引用 :只可以指向该类以及它的子类类型的对象
p=new AA(); 这句代码若正确,则要求:要么AA就是A 要么AA是A的子类
interface B{…}
class BB implements B{…}
class BBB{…}
interface类型的引用,只可以指向
B p=new BB(); 这句代码若正确,则要求:BB类必须实现了B的接口
通过引用可以调用什么方法,重点看引用类型