Java形式参数和返回值的问题
形式参数和返回值的问题
(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形式参数和返回值的问题的更多相关文章
- 10-02 Java 形式参数和返回值的问题深入研究,链式编程
形式参数和返回值的问题: 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该 ...
- java基础之抽象类与接口的形式参数和返回值
抽象类与接口形式参数和返回值问题 1.形参问题 /* 1.形式参数: 基本类型(太简单,不是我今天要讲解的) 引用类型 (1)类名:(匿名对象的时候其实我们已经讲过了) 需要的是该类的对象 (2)抽象 ...
- 在Java 线程中返回值的用法
http://icgemu.iteye.com/blog/467848 在Java 线程中返回值的用法 博客分类: Java Javathread 有时在执行线程中需要在线程中返回一个值:常规中我们 ...
- java 代码执行cmd 返回值异常 (关于JAVA Project.waitfor()返回值是1)
关于JAVA Project.waitfor()返回值是1 0条评论 Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明. 这时对源代码调试了一下,发现Project ...
- Java多线程带返回值的Callable接口
Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两 ...
- LY.JAVA面向对象编程.形式参数和返回值
2018-07-09 13:29:16 运动员和教练案例 /* 教练和运动员案例(学生分析然后讲解) 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语 ...
- 《java入门第一季》之面向对象(形式参数和返回值问题的深入研究3)
/* 形式参数: 引用类型 接口:需要的是该接口的实现类对象 这个时候就没什么了,和抽象类的解释差不多. */ interface Love { public abstract ...
- 为什么Java不能以返回值区分重载方法?
读者可能会想:"在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准呢?能否考虑用方法的返回值来区分呢?" 比如下面两个方法,虽然他们有相同的名字和形式参数,但却很容易区 ...
- 谁说java里面有返回值的方法必须要有返回值,不然会报错????
慢慢的总是发现以前的学得时候有些老师讲的不对的地方! 所以还是尽量别把一些东西说的那么绝对,不然总是很容易误导别人,特别是一些你自己根本就没有试过的东西,然后又斩钉截铁的告诉别人,这样不行,肯定不行什 ...
随机推荐
- HDU2444 【二分图判定+最大匹配】
套模板很好的题? #include<bits/stdc++.h> using namespace std; const int N=2e2+10; const int M=4e4+10; ...
- Lightoj1083【单调栈】
#include <cstdio> #include <stack> #include <iostream> #include <string.h> # ...
- Codeforces Round #375 (Div. 2)【A,B【模拟】,D【DFS】】
PS_B:阿洗吧!B题卧槽数组开了250... PS_D:D题主要挂在了50*50口算得了250,数组开小,然后一开始还错了.= =哎,以后对于数据范围还是注意一点: 卧槽,这场可真二百五了... A ...
- Java反射学习笔记01
- docker Mac安装和使用
1.安装docker brew cask install docker 2.安装后可以用命令查看版本 docker --version 3.build java 项目(jar) docker buil ...
- 【bzoj1726】Roadblocks
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1578 Solved: 795[ ...
- python __new__ __init__ 区别
参数 __new__的第一个占位参数是class对象 __init__的第一个占位参数是class的实例对象 其他的参数应一致 作用 __new__ 用来创建实例,在返回的实例上执行__init__, ...
- Java微信公众平台开发(七)--多媒体消息回复之图片回复
之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复[普通消息类型消息],这里将讲述多媒体消息的回复方法,[多媒体消息]包含回复图片消息/回复语音消息/回复视频消息/回复音乐消 ...
- MyBatis框架的XML数据访问Dao层接口的组合使用
MyBatis 的前生为Apache的开源项目iBatis.其优势在于灵活,几乎可以替代JDBC,同时提供了编程接口.目前MyBatis的数据访问Dao层不需要实现类,也不需要像JDBC那样拼接Hql ...
- Tame Your Software Dependencies for More Flexible Apps
http://msdn.microsoft.com/en-us/magazine/cc337885.aspx