`

java综合

    博客分类:
  • java
阅读更多

     以下自定义的简单类中,分析涉及的基础知识

 

//设计原则,设计模式的理解应用

 

//面向接口编程 

public interface InterfaceTest {

 

int p=3; //接口中定义属性默认public static final

int k=6;

void test1();

AbstraceTest1 at=new Test2();  //依赖倒转原则? 组合模式

}

 

 

//接口隔离原则

public abstract class AbstraceTest1 implements InterfaceTest {

 

int p=1;//接口变量和类变量关系

//特别标记 去掉下一行Test2注释 ,看看结果如何?

//Test2 at=new Test2();

abstract void test();

public void test1(){

System.out.print("AbstraceTest1.test1()");

}

 

    public AbstraceTest1(){

System.out.println("AbstraceTest1 construct");

}

}


//里氏代换原则
public class Test2 extends AbstraceTest1 implements InterfaceTest{//违反接口隔离原则?

     public Test2(){
super();
System.out.println("Test2 construct");
}
int p;//子类变量与父类变量关系
@Override
void test() {
System.out.println("Test2.test():InterfaceTest.p:"+InterfaceTest.p);

}

        //继承性多态
@Override  
public void test1() {
++p;
System.out.println("Test2.test1():p:="+ p);

}
     //参数性多态
public void test3(String name) {
System.out.println("Test2.test3():name:="+ name);

}

public void test3(int age) {
System.out.println("Test2.test3():age:="+ age);

}
public void innertest3(){
Test3 t=new Test3();
t.innerTest();
}
class Test3{//内部类
int q;
int m=0;
public void innerTest(){
System.out.println("Test3 innerTest p :"+p);
System.out.println("Test3 innerTest q:"+q);
System.out.println("Test3 innerTest m:"+(++m));
}
}
public void innertest4(){
Test4 t=new Test4();
t.innerTest();
}
static class Test4{//静态内部类
int q;
int m=0;
public void innerTest(){
System.out.println("Test4 innerTest q:"+q);
System.out.println("Test4 innerTest m:"+(++m));
}
}
}


public class Test {


public static void main(String[] args) {
                //以下可认为是组合模式
Test2 t2=new Test2();
t2.test1();
t2.test();
t2.at.test1();
AbstraceTest1 t1=new Test2();
t1.test1();
t1.test();
InterfaceTest t3=new Test2();
t3.test1();
Test2.Test3 innert3= new Test2().new Test3();
innert3.innerTest();
Test2.Test4 innert4=new Test2.Test4();
innert4.innerTest();
AbstraceTest1 t4=new AbstraceTest1(){

@Override
void test() {
System.out.println("t4.test():k="+(k));
}};
t4.test1();
t4.test();
}

}

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics