形式参数和返回值的问题深入研究

来源:互联网 发布:厦门巨龙软件 编辑:程序博客网 时间:2024/06/05 09:16

形式参数

形式参数:    基本类型(太简单,不是我今天要讲解的)    引用类型        类名:(匿名对象的时候其实我们已经讲过了)需要的是该类的对象        抽象类:需要的是该抽象的类子类对象        接口:需要的是该接口的实现类对象
/*类名作为形式参数*/class Student {    public void study() {        System.out.println("Good Good Study,Day Day Up");    }}class StudentDemo {    public void method(Student s) { //ss; ss = new Student();  Student s = new Student();        s.study();    }}class StudentTest {    public static void main(String[] args) {        //需求:我要测试Student类的study()方法        Student s = new Student();        s.study();        System.out.println("----------------");        //需求2:我要测试StudentDemo类中的method()方法        StudentDemo sd = new StudentDemo();        Student ss = new Student();        sd.method(ss);        System.out.println("----------------");        //匿名对象用法        new StudentDemo().method(new Student());    }}
/*抽象类作为形式参数*/abstract class Person {    public abstract void study();}class PersonDemo {    public void method(Person p) {//p; p = new Student();  Person p = new Student(); //多态        p.study();    }}//定义一个具体的学生类class Student extends Person {    public void study() {        System.out.println("Good Good Study,Day Day Up");    }}class PersonTest {    public static void main(String[] args) {        //目前是没有办法的使用的        //因为抽象类没有对应的具体类        //那么,我们就应该先定义一个具体类        //需求:我要使用PersonDemo类中的method()方法        PersonDemo pd = new PersonDemo();        Person p = new Student();        pd.method(p);    }}
/*接口作为形式参数*/interface Love {    public abstract void love();}class LoveDemo {    public void method(Love l) { //l; l = new Teacher();  Love l = new Teacher(); 多态        l.love();    }}//定义具体类实现接口class Teacher implements Love {    public void love() {        System.out.println("老师爱学生,爱Java,爱林青霞");    }}class TeacherTest {    public static void main(String[] args) {        //需求:我要测试LoveDemo类中的love()方法        LoveDemo ld = new LoveDemo();        Love l = new Teacher();        ld.method(l);    }}

返回值

返回值类型    基本类型:(基本类型太简单,我不准备讲解)    引用类型:        类:返回的是该类的对象        抽象类:返回的是该抽象类的子类对象        接口:返回的是该接口的实现类的对象
/*类作为返回值*/abstract class Person {    public abstract void study();}class PersonDemo {    public Person getPerson() {        //Person p = new Student();        //return p;        return new Student();    }}class Student extends Person {    public void study() {        System.out.println("Good Good Study,Day Day Up");    }}class PersonTest2 {    public static void main(String[] args) {        //需求:我要测试Person类中的study()方法        PersonDemo pd = new PersonDemo();        Person p = pd.getPerson(); //new Student();  Person p = new Student(); 多态        p.study();    }}
/*抽象类作为返回值*/class Student {    public void study() {        System.out.println("Good Good Study,Day Day Up");    }}class StudentDemo {    public Student getStudent() {        //Student s = new Student();        //Student ss = s;        //Student s = new Student();        //return s;        return new Student();    }}class StudentTest2 {    public static void main(String[] args) {        //需求:我要使用Student类中的study()方法        //但是,这一次我的要求是,不要直接创建Student的对象        //让你使用StudentDemo帮你创建对象        StudentDemo sd = new StudentDemo();        Student s = sd.getStudent(); //new Student(); Student s = new Student();        s.study();    }}
/*接口作为返回值*/interface Love {    public abstract void love();}class LoveDemo {    public Love getLove() {        //Love l = new Teacher();        //return l;        return new Teacher();    }}//定义具体类实现接口class Teacher implements Love {    public void love() {        System.out.println("老师爱学生,爱Java,爱林青霞");    }}class TeacherTest2 {    public static void main(String[] args) {        //如何测试呢?        LoveDemo ld = new LoveDemo();        Love l = ld.getLove(); //new Teacher(); Love l = new Teacher(); 多态        l.love();    }}

链式编程概述

/*    链式编程。        每次调用完毕方法后,返回的是一个对象。*/class Student {    public void study() {        System.out.println("Good Good Study,Day Day Up");    }}class StudentDemo {    public Student getStudent() {        return new Student();    }}class StudentTest3 {    public static void main(String[] args) {        //如何调用的呢?        StudentDemo sd = new StudentDemo();        //Student s = sd.getStudent();        //s.study();        //大家注意了        sd.getStudent().study();    }}
0 0