当class,interface作为成员变量
再实际开发中,引用类作为成员变量是十分普遍的,我们可以在理解基本类型的使用方式基础上,进一步 去掌握引用类型的使用方式。基本类型可以作为成员变量、作为方法的参数、作为方法的返回值,那么当然引用类 型也是可以的。
本文介绍class,interface作为成员变量,其实和基本数据类型相差无几
直接上代码吧
class作为成员变量
public class A {
private B b;
public void shuchu(){
System.out.println(b);
}
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
public A(B b) {
this.b = b;
}
}
public class B {
private int age;
private String name;
@Override
public String toString() {
return "B{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public void setName(String name) {
this.name = name;
}
public B(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
}
import java.sql.SQLOutput;
public class Main {
public static void main(String[] args) {
A zhangsan = new A(new B(18,"法外狂徒张三"));
zhangsan.shuchu();
}
}
结果
interface作为成员变量,相比于class增加了程序的拓展性,有点多态的意思,接口作为成员变量时,对它进行赋值的操作,实际上,是赋给它该接口的一个子类对象。
public class Main {
public static void main(String[] args) {
A one = new A(new Example() {
@Override
public void attack() {
System.out.println("霹雳火");
System.out.println("雷霆半月斩");
}
});
one.getA();
A two = new A(new Example() {
@Override
public void attack() {
System.out.println("力霸天");
System.out.println("泰山陨石坠");
}
});
two.getA();
}
}
public class A {
private Example a;
public void getA() {
a.attack();
}
public void setA(Example a) {
this.a = a;
}
public A(Example a) {
this.a = a;
}
}
public interface Example {
void attack();
}
是不是极大的增加了程序的可拓展性呀
以上就是class,interface作为成员变量的一些知识,如有错误请各位批评指教,如果喜欢我可以关注我,我会经常更新技术文章