JavaJava学习笔记

面向对象05

2018-11-23  本文已影响5人  丫甘九

类名作为形式参数

形式参数
返回值类型
package mianxiangduixiang04;

public class student {
    public void show() {
        System.out.println("good good study,day day up up");
    }

}


package mianxiangduixiang04;

public class studentdemo {
public void method(student s) {
    System.out.println("good good good study,day day day up up");
}
}


package mianxiangduixiang04;

public class studenttest {
    public static void main(String[] args) {
        //测试的是student类中的show方法
        student s = new student();
        s.show();
        //测试studentdemo类中的method方法
        studentdemo sd = new studentdemo();
        sd.method(s);
        //匿名对象
        new studentdemo().method(new student());
    }

}

结果为:
good good study,day day up up
good good good study,day day day up up
good good good study,day day day up up

抽象类名作为形式参数

package mianxiangduixiang04;

abstract class person {
public abstract void study();
}


package mianxiangduixiang04;

public class persondemo {
    public void method(person p) {
        //p;p = new student1; person p = new student(); 多态
        p.study();
    }

}


package mianxiangduixiang04;

public class student2 extends person{//定义一个具体的学生类
    public void study() {
        System.out.println("good good study,day day up up");
        
    }

}


package mianxiangduixiang04;

public class persontest {
    public static void main(String[] args) {
        //需求:我要使用persondemo类中的method方法
        persondemo pd = new persondemo();
        person p = new student2();
        pd.method(p);
        
    }

}

结果为:
good good study,day day up up

接口名作为形式参数

package mianxiangduixiang04;
//定义一个爱好的接口
interface love{
    public abstract void love();
}
public class lovedemo {
    public void method(love l) {
        l.love();
    }

}


package mianxiangduixiang04;
//定义具体类实现接口
public class teacher implements love {
public void love() {
    System.out.println("老师爱学生");
}
}


package mianxiangduixiang04;
//需求:我要测试lovedemo类中的method方法
public class lovetest {
    public static void main(String[] args) {
        lovedemo ld = new lovedemo();
        love l= new teacher();
        ld.method(l);
    }

}

结果为:
老师爱学生

类名作为返回值类型

返回值类型:
A 基本类型(int)
(太简单,不讲解)
B 引用类型(类、接口、抽象类)

package mianxiangduixiang04;

public class student3 {
    public void study() {
        System.out.println("good good good study,day day up");
    }

}


package mianxiangduixiang04;

public class studentdemo3 {
public student3 getstudent() {
    //student s = new student();
    //student ss = s;
    
    //student s = new student();
    //return s;
    return new student3();
}
//返回了一个student类型,这就相当于返回了一个student类的对象,就相当于 new student 了

}


package mianxiangduixiang04;

public class student3test {
    public static void main(String[] args) {
        //需求:我要使用student类中的study方法
        //一般我们可以直接创建student的对象
        //但是,这一次的要求是:不要直接创建student的对象
        //要使用studentdemo帮你创造对象
        studentdemo3 sd = new studentdemo3();
        student3 s = sd.getstudent();
        //new student();student s = new student();
        s.study();
        
    }

}

结果为:
good good good study,day day up

抽象类作为返回值类型

package mianxiangduixiang04;

abstract class person2 {
public abstract void study();
}


package mianxiangduixiang04;

public class persondemo2 {
    public person2 getperson2() {
        //person p = new person();
        //return p;
        return new student4();
    }

}


package mianxiangduixiang04;

public class student4 extends person2{
    public void study() {
        System.out.println("学生爱学习");
    }

}


package mianxiangduixiang04;

public class persontest2 {
    public static void main(String[] args) {
        //需求:我要测试person2类中的study方法
        persondemo2 pd = new persondemo2();
        person2 p = new student4();
        p.study();
    }

}

结果为:
学生爱学习

接口作为返回值类型

package mianxiangduixiang04;

public interface love{
    public abstract void love();
}
public class lovedemo2 {
    
public love getlove() {
    //love l = new teacher();
    //return l;
    return new teacher();
}
}


package mianxiangduixiang04;

public class teacher2 implements love {
public void love() {
    System.out.println("老师爱打羽毛球");
}

}

package mianxiangduixiang04;

public class lovedemotest {
    public static void main(String[] args) {
        lovedemo2 ld = new lovedemo2();
        love l = ld.getlove();
        l.love();
        
    }

}

上一篇 下一篇

猜你喜欢

热点阅读