面向对象05

作者: 丫甘九 | 来源:发表于2018-11-23 17:47 被阅读5次

类名作为形式参数

形式参数
  • 基本类型(int)
    (太简单,今天我们不讲)
  • 引用类型
    类:(匿名对象的时候已经讲过了)
    抽象类:需要的是该抽象类的子类对象
    接口:
返回值类型
  • 基本类型
  • 引用类型
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();
        
    }

}

相关文章

  • 0723

    01面向对象和面向过程的思想 02面向对象的思想的生活案例 03面向对象好处 04大象装进冰箱的代码案例 05定义...

  • 那些年我们追过的Java面试(OOP、线程)

    标签:Java面试, 面向对象,线程、2017/05/09 09:23 一.面向对象编程 1.JRE、JDK的区别...

  • 面向对象05

    类名作为形式参数 形式参数 基本类型(int)(太简单,今天我们不讲) 引用类型类:(匿名对象的时候已经讲过了)抽...

  • Golang 学习笔记(05)—— 面向对象编程

    本文为转载,原文:Golang 学习笔记(05)—— 面向对象编程 前言 golang是面向过程的语言,go中没有...

  • VBA-JC第5节|面向对象基本原理与Excel对象结构

    最近更新:'2019-05-14' 类与对象概念Excel对象结构 1. 类与对象概念 1.1面向对象的基本概念 ...

  • Java面向对象

    Java面向对象 [图片上传中...(null与GC.PNG-72a05e-1543754889476-0)] 1...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 面向对象(八)继承___ 05组合继承

    title: 面向对象(八)继承___ 05组合继承 # 文章页面上的显示名date: # 文章生成...

  • 系统架构学习链接

    01. 面向对象六大基本原则 - 网络引擎切换 02. AOP面向切面编程 - 淘宝京东网络处理 05. 编译时注...

网友评论

    本文标题:面向对象05

    本文链接:https://www.haomeiwen.com/subject/jknjqqtx.html