对象作为返回值类型&&链式编程
package com.imooc;
class Student{
public void study(){
System.out.println("学生学习");
}
}
class StudentDemo{
public Student getStudent(){
return new Student();
}
}
public class ReturnDemo {
public static void main(String[] args){
StudentDemo sd = new StudentDemo();
Student s = sd.getStudent();
s.study();
}
}
抽象类作为返回值类型,返回的是该抽象类的子类对象
package com.imooc;
abstract class Person{
public abstract void study();
}
class Student extends Person{
public void study(){
System.out.println("学生爱学习");
}
}
class StudentDemo{
public Person getPerson(){
return new Student();
}
}
public class ReturnDemo {
public static void main(String[] args){
StudentDemo sd = new StudentDemo();
Person p = sd.getPerson();
p.study();
}
}
接口作为返回返回值类型,返回的是实现该接口的实现类的对象
package com.imooc;
interface Love{
public abstract void love();
}
class Teacher implements Love{
public void love(){
System.out.println("老师爱上课");
}
}
class TeacherDemo{
public Love getLove(){
return new Teacher(); //因为teacher实现了Love接口
}
}
public class TeacherTest {
public static void main(String[] args){
TeacherDemo td = new TeacherDemo();
Love l = td.getLove();
l.love();
}
}
如果每次调用完方法都返回一个对象,那么便可以实现链式编程
例如:
package com.imooc;
interface Love{
public abstract void love();
}
class Teacher implements Love{
public void love(){
System.out.println("老师爱上课");
}
}
class TeacherDemo{
public Love getLove(){
return new Teacher(); //因为teacher实现了Love接口
}
}
public class TeacherTest {
public static void main(String[] args){
TeacherDemo td = new TeacherDemo();
Love l = td.getLove();
l.love(); //链式编程:每次调用完方法之后返回的是一个对象
td.getLove().love();
//td是一个对象,td.getLovce()返回的是一个实现Love接口的对象,
//可以再调用这个对象的方法
}
}
对象作为返回值类型&&链式编程的更多相关文章
- 10-02 Java 形式参数和返回值的问题深入研究,链式编程
形式参数和返回值的问题: 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该 ...
- 从零开始学 Web 之 jQuery(七)事件冒泡,事件参数对象,链式编程原理
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)
jQuery简介 什么是jQuery? jQuery就是一个JavaScript函数库,没什么特别的.(开源)联想SQLHelper类 jQuery能做什么?jQuery是做什么的? jQuery本身 ...
- el表达式获取对象属性值 返回值类型
实现 数字页码时 遇到的一个问题. 后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebe ...
- 获得函数返回值类型、参数tuple、成员函数指针中的对象类型
//function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...
- Java链式编程接口
在android开发中显示一个AlertDialog时,常采用下列的写法: new AlertDialog.Builder(getApplicationContext()) .setTitle(&qu ...
- iOS:用Block写一个链式编程
一.介绍 链式编程是一个比较新颖的编程方式,简单直观,用起来也比较舒服.目前比较有名的Mansory和BabyBlueTooth就是使用链式编程写的第三方框架. 二.写法 链式编程写法不同于传统方式, ...
- iOS利用block实现链式编程方法(Objective-C链式编程)
objc利用block实现链式编程方法 因为不好读.block和其他语言的匿名函数一样,很多程序员刚开始很难主动去用他. 本文描述block作为属性的实际使用,看懂block,并讲解如何利用block ...
- C++ 运算符重载三(链式编程)
//运算符重载之链式编程 #include<iostream> using namespace std; //对于友元函数重载运算符只适用于左操作数是系统变量的场景 //因为成员无法在系统 ...
随机推荐
- 在python文本编辑器里如何设置Tab为4个空格
python中缩进一般为四个空格,我总结3种常用编辑器中种如何设置Tab键为四个空格 第一种:下载python3.5时自带de 一个IDLE编辑器 在Options选项下的Configure IDLE ...
- android-数据持久化
动态文件 String FILE_NAME = "tempfile.tmp"; try { //读 FileInputStream fis = openFileInput(FILE ...
- .NET 条件查询实现--类似网上商城宝贝搜索
需要实现的效果:点击表格列头:弹出一个层,用户可以输入当前列头的查询条件,点击确定之后,把该列头的查询信息显示在页面顶部,用户可以叉掉这个查询条件,恢复到查询之前的数据. 大致实现的效果图: 项目背景 ...
- python进阶1--数据库支持
数据库支持 1.连接和游标 1)connect函数,该函数有多个参数,而具体使用那个参数取决于数据库.--连接数据库 常用参数: dsn:数据源名称 user:用户名 password:用户密码 ho ...
- Android Studio 中快速提取方法
在开发过程中,有时在一个方法内部写了过多的代码,然后想要把一些代码提取出来封装下,分离开放在一个单独的方法里,可能你的做法是直接选中后Ctrl + 叉,或者 Ctrl + C,但在Android St ...
- 脑波设备mindwave TGCD接口开发示例
对于TGCD的开发,神念科技提供的文件包括,头文件thinkgear.h,thinkgear.lib,thinkgear.dll,有这三个文件,在win32下开发就不是什么难事了吧 如果是java语言 ...
- Socket编程指南及示例程序
例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库.资源和执行程序.代码的压缩包位置是http://www.blogja ...
- 基于xml文件实现系统属性配置管理
文章标题:基于xml文件实现系统属性配置管理 . 文章地址: http://blog.csdn.net/5iasp/article/details/11774501 作者: javaboy2012 E ...
- javascript操作JSON字符
1.先要区分JSON字符串和JSON对象 JSON字符串: Var strJSON = “{“Area”:[{“AreaId”:”123”},{“AreaId”:”345”}]}”, 或者 Var ...
- css--技巧整理(1-13)
(更新中) 1.取消浏览器form中默认样式 a.chrome下input和textarea的聚焦边框 input,button,select,textarea{outline:none} b.取消 ...