形式参数和返回值的问题

(1).形式参数:

    A.类名:需要该类的对象。

    B.抽象类名:需要该类的子类对象。

    C.接口名:需要该接口的实现类对象。

A.类名作为形式参数

class Student {
public void study(){
System.out.println("Study!");
}
} class StudentDemo{
public void method(Student s){ //ss = new Student(); Student s = new Student();
s.study();
}
}
class StudentTest{
public static void main(String[] args){
Student s = new Student(); // 利用Student类进行study函数的使用。
s.study();
System.out.println("----------------");
StudentDemo sd = new StudentDemo();
Student ss = new Student(); //利用StudentDemo类进行输出study。
sd.method(ss);
System.out.println("----------------");
new StudentDemo().method (new Student()); // 匿名对象用法
}
}

B.抽象名作为形式参数

abstract class Person{
public abstract void study();
} class PersonDemo{
public void method(Person p) {
p.study();
}
} class Stu extends Person{
public void study() {
System.out.println("study!");
}
} class Student{
public static void main(String[] args) {
Person pp = new Stu(); // 利用Stu类调用study函数进行输出。
pp.study();
System.out.println("-----------");
PersonDemo pd = new PersonDemo();//利用PersonDemo类进行调用函数进行输出。
Person p = new Stu();
pd.method(p);
}
}

C.接口作为形式参数

interface Love{
public abstract void love();
} class LoveDemo{
public void method(Love l) {
l.love();
}
} class LoveTest implements Love{
public void love() {
System.out.println("Love!");
}
} class Demo{
public static void main(String[] args) {
LoveDemo ld = new LoveDemo(); // 利用LoveDemo类进行调用输出。
Love l = new LoveTest();
ld.method(l);
System.out.println("-------------");
Love ll = new LoveTest(); // 利用Love类进行调用输出。
ll.love();
}
}

(1).返回值类型:

    A.类名:返回的是该类的对象。

    B.抽象类名:返回的是该类的子类对象。

    C.接口名:返回的是该接口的实现类的对象。

A.类名作为返回值

class Stu{
public void study() {
System.out.println("Study!");
}
} class StuDemo{
public Stu getStu() {
//Stu s = new Stu(); // 这里有两种形式表达,选取自己较能理解的。
//return s;
return new Stu();
}
} class StudentTset {
public static void main(String[] args) {
StuDemo sd = new StuDemo(); // 利用StuDemo类来进行调用函数输出。
Stu s = sd.getStu();
s.study();
}
}

B.抽象类名作为返回值

abstract class Person{
public abstract void study();
} class PersonDemo{
public Person getPerson() {
//Person p = new Stu();
//return p;
return new Stu();
}
} class Stu extends Person{
public void study() {
System.out.println("Study!");
}
}
class Student {
public static void main(String[] args) {
PersonDemo pd = new PersonDemo(); // 利用PersonDemo类来进行调用函数输出。
Person p = pd.getPerson();
p.study();
System.out.println("------------");
Person pp = new Stu(); // 利用多态进行创建对象并输出。
pp.study();
System.out.println("------------");
Stu s = new Stu(); // 利用Stu类来进行函数调用并输出。
s.study();
}
}

C.接口作为返回值

interface Jump{
public abstract void jump();
} class JumpDemo{
public Jump getJump() {
//Jump j = new Dog();
//return j;
return new Dog();
}
} class Dog implements Jump{
public void jump() {
System.out.println("can jump!");
}
}
class Student {
public static void main(String[] args) {
JumpDemo jd = new JumpDemo(); // 利用JumpDemo类来进行调用函数输出。
Jump j = jd.getJump();
j.jump();
}
}

上面的代码虽然有一些有比较简单的输出形式,但是没有用到专门所创建的形式参数和返回值的类。我们之所以不用简单的形式就是要把这个 形式参数和返回值的问题 给弄清楚。

Java形式参数和返回值的问题的更多相关文章

  1. 10-02 Java 形式参数和返回值的问题深入研究,链式编程

    形式参数和返回值的问题: 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该 ...

  2. java基础之抽象类与接口的形式参数和返回值

    抽象类与接口形式参数和返回值问题 1.形参问题 /* 1.形式参数: 基本类型(太简单,不是我今天要讲解的) 引用类型 (1)类名:(匿名对象的时候其实我们已经讲过了) 需要的是该类的对象 (2)抽象 ...

  3. 在Java 线程中返回值的用法

    http://icgemu.iteye.com/blog/467848 在Java 线程中返回值的用法 博客分类: Java Javathread  有时在执行线程中需要在线程中返回一个值:常规中我们 ...

  4. java 代码执行cmd 返回值异常 (关于JAVA Project.waitfor()返回值是1)

    关于JAVA Project.waitfor()返回值是1   0条评论 Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明. 这时对源代码调试了一下,发现Project ...

  5. Java多线程带返回值的Callable接口

    Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两 ...

  6. LY.JAVA面向对象编程.形式参数和返回值

    2018-07-09 13:29:16 运动员和教练案例 /* 教练和运动员案例(学生分析然后讲解) 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语 ...

  7. 《java入门第一季》之面向对象(形式参数和返回值问题的深入研究3)

    /*     形式参数:         引用类型 接口:需要的是该接口的实现类对象 这个时候就没什么了,和抽象类的解释差不多. */ interface Love { public abstract ...

  8. 为什么Java不能以返回值区分重载方法?

    读者可能会想:"在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准呢?能否考虑用方法的返回值来区分呢?" 比如下面两个方法,虽然他们有相同的名字和形式参数,但却很容易区 ...

  9. 谁说java里面有返回值的方法必须要有返回值,不然会报错????

    慢慢的总是发现以前的学得时候有些老师讲的不对的地方! 所以还是尽量别把一些东西说的那么绝对,不然总是很容易误导别人,特别是一些你自己根本就没有试过的东西,然后又斩钉截铁的告诉别人,这样不行,肯定不行什 ...

随机推荐

  1. git commit 提交不了 error: pathspec 'project'' did not match any file(s) known to git.

    1. 问题--使用git将代码提交到码云,使用到以下命令时: git commit -m 'init project' # 报错 error: pathspec 'project'' did not ...

  2. laravel 数据库连接Mysql

    找到 config/database.php 'mysql' => [ 'driver' => 'mysql', //数据库的类型 'host' => env('DB_HOST', ...

  3. perl C/C++ 扩展(二)

    第二讲perl 加载c/c++的库 先通过h2xs 创建一个新的工程 h2xs -A -n two_test 进入目录 cd two_test 创建一个mylib文件夹,存放静态库 mkdir myl ...

  4. .netcore--Controller后台实现企业微信发送消息

    一.获得企业微信管理端权限,登录企业企业微信管理端界面,并创建应用,如下图中的[网站消息推送] 二.参见企业微信API文献,根据corpid=ID&corpsecret=SECRET(其中企业 ...

  5. [hdu1686] Oulipo【KMP】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1686 保存KMP模版,代码里P是模版串,next[]就是为它建立的.T是文本串,就是一般比较长的.nex ...

  6. bryce1010专题训练——CDQ分治

    Bryce1010模板 CDQ分治 1.与普通分治的区别 普通分治中,每一个子问题只解决它本身(可以说是封闭的) 分治中,对于划分出来的两个子问题,前一个子问题用来解决后一个子问题而不是它本身 2.试 ...

  7. 洛谷P2047||bzoj1491 [NOI2007]社交网络

    https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可 ...

  8. py3.5 telnet的实例(在远程机器上批量创建用户)

    import sysimport telnetlibimport time HOST = ["172.18.217.12","172.18.217.13"]#往 ...

  9. web基础笔记

    浏览器渲染页面的过程 浏览器渲染页面前需要先构建 DOM 和 CSSOM 树.因此,我们需要确保尽快将 HTML 和 CSS 都提供给浏览器. 参考:https://developers.google ...

  10. shell脚本由基础变量及特殊变量($@、$*、$#等)到实战。

    一.shell脚本建立: shell脚本通常是在编辑器(如vi/vim)中编写,也可以在命令行中直接执行: 1.脚本开头:     规范的脚本第一行需要指出有哪个程序(解释器)来执行脚本中的内容,在L ...