第十四讲 适配器模式、内部类、递归算法、数据结构之链表、包装类、Eclipse开发环境设置
导读
适配器模式,也是Java二十三中设计模式之一。让其他的对象可以适应规范,其实这样说是不是觉得很迷糊啊?
我们把适配器模式当做我们家电用的插座,对,就是这样来想就很容易学习和应用了。
内部类:日常开发中用的很少,但它却很重要。
递归算法:方法调用自身的操作,但必须要有一个出口,因为避免进入死循环。
链表:拥有一个pre节点和next节点,element是代表即将存储或者删除的对象。
包装类:就是JDK7.0以上的版本,提供对原生数据的对象化包装。
Eclipse工具的常用设置。对于一般地开发人员,是必须要设置的,因为可以提高开发效率和团队规范化!
一、适配器模式设计代码
public interface Target {
/**
* 这是源类Adaptee也有的方法
*/
public void sampleOperation1();
/**
* 这是源类Adapteee没有的方法
*/
public void sampleOperation2();
}
public class Adaptee {
public void sampleOperation1(){}
}
public class Adapter extends Adaptee implements Target {
/**
* 由于源类Adaptee没有方法sampleOperation2()
* 因此适配器补充上这个方法
*/
@Override
public void sampleOperation2() {
//写相关的代码
}
}
1. 成员内部类
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.print("Outer.new");
inner = outer.getInner();
inner.print("Outer.get");
}
// 个人推荐使用getxxx()来获取成员内部类,尤其是该内部类的构造函数无参数时
public Inner getInner() {
return new Inner();
}
public class Inner {
public void print(String str) {
System.out.println(str);
}
}
}
2. 局部内部类:局部内部类,是指内部类定义在方法和作用域内。
public Destination destination(String s) {
class PDestination implements Destination {
private String label;
private PDestination(String whereTo) {
label = whereTo;
}
public String readLabel() {
return label;
}
}
return new PDestination(s);
}
public static void main(String[] args) {
Parcel4 p = new Parcel4();
Destination d = p.destination("Tasmania");
}
}
@Override
public void onClick(View v) {
new Thread() {
@Override
public void run() {
// TODO Auto-generated method stub
}
}.start();
}
});
/**
* time:2012.12.2
* author:王金宇
* description:用递归实现斐波那契数列,但是此方法是嫉妒危险的,适用于求解比较小的位置数值
*/
public static void main(String[] args) {
Fibonacci fibonacci=new Fibonacci();
int result=fibonacci.fib(5);
System.out.println(result);
}
public int fib(int index){
if(index==1||index==2){
return 1;
}else{
return fib(index-1)+fib(index-2);
}
}
}
执行结果示意图——
Java包装类技术——
int是原生类型,与之对应的是Integer类。
对,一个是数值,一个是对象,显然是不同的两种数据类型。
怎么判断呢?其实更简单,对象有属性和方法,而原生的没有,因为原生就本身的意思。直接拿来用就ok了,测试一下就知道了。
代码如下:
int num = 100;
Integer integer = new Integer(num);
这样做的目的,除了可以互相转换之外,还可以增强面向对象对原生数据类型更加优秀的编程方式——
Java中有8种基本数据类型,与之对应的就有八种包装类,一般地说,包装类更方便用于集合或者框架技术配置。
关于如何设置Eclipse开发环境,我这里有一篇博客值得一看。
我们都是学习技术的,分享是我们最大的乐趣,别人怎么想我不晓得,反正宁叔觉得都是中国的IT技术人员;
我们必须要努力,突破技术点,比国外的技术员都要厉害。哈哈~