实际的开发中,引用类型的使用非常重要,也是非常普遍的。我们可以在理解基本类型的使用方式基础上,进一步去掌握引用类型的使用方式。基本类型可以作为成员变量、作为方法的参数、作为方法的返回值,那么当然引用类型也是可以的。
1.
引用类型作为方法参数和返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Person{ public void eat(){ System.out.println("吃饭"); } } public class Test{ public static void main(String[] args){ method(new Person()); Person p = createPerson(); } pubic static void method(Person p){ p.eat(); } public static Person createPerson(){ return new Person(); } }
|
2. 引用类型作为成员变量
我们每个人(Person)都有一个身份证(IDCard) , 为了表示这种关系 ,
就需要在Person中定义一个IDCard的成员变量。定义Person类时,代码如下:
1 2 3 4
| class Person { String name; int age; }
|
使用使用String
类型表示姓名 , int
类型表示年龄。其实,String
本身就是引用类型,我们往往忽略了它是引用类型。如果我们继续丰富这个类的定义,给Person
增加身份证号 ,
身份证签发机关等属性,我们将如何编写呢?这时候就需要编写一个IDCard类了
定义IDCard(身份证)类,添加身份证号 , 签发地等属性:
1 2 3 4 5 6 7 8 9 10
| class IDCard { String idNum; String authority; }
|
修改Person类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class Person { String name; int age;
IDCard idCard;
public IDCard getIdCard() { return idCard; }
public void setIdCard(IDCard idCard) { this.idCard = idCard; }
@Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", idCard=" + idCard + '}'; } }
|
测试类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class TestDemo { public static void main(String[] args) { IDCard idCard = new IDCard(); idCard.setIdNum("110113201606066666"); idCard.setAuthority("北京市公安局");
Person p = new Person(); p.setName("张三"); p.setAge(2); p.setIdCard(idCard);
System.out.println(p); } } 输出结果: Person{name='张三', age=2, idCard=IDCard{idNum='110113201606066666', authority='北京市公安局'}}
|
类作为成员变量时,对它进行赋值的操作,实际上,是赋给它该类的一个对象。同理
, 接口也是如此 。