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里面有返回值的方法必须要有返回值,不然会报错????
慢慢的总是发现以前的学得时候有些老师讲的不对的地方! 所以还是尽量别把一些东西说的那么绝对,不然总是很容易误导别人,特别是一些你自己根本就没有试过的东西,然后又斩钉截铁的告诉别人,这样不行,肯定不行什 ...
随机推荐
- lightoj1259 【素数预处理】
题意: 输出有多少对满足条件的(a,b) both a and b are prime; a+b=n a<=b; 思路: 一开始想的就是打表一个素数数组,然后还去二分..mdzz..直接判断一下 ...
- Codevs 1570 去看电影
1570 去看电影 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 农夫约翰带着他的一些奶牛去看 ...
- IT兄弟连 JavaWeb教程 MVC设计模式
MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...
- Java反射学习笔记01
- Vuex目录结构推荐
目录结构如下: - src - store // 在src目录下 新建一个store文件夹 - mutations.js // mutations - mutaions_types.js // mut ...
- 新手搭建springmvc+mybits框架的经验分享
1.搭建过程中遇到的问题: ①由于是第一次使用springmvc框架,对它的认识真的很浅,只知道他属于spring旗下的产品,仅此而已.于是搭建过程中确实遇到不少麻烦,因为之前的项目都是老师带着做的, ...
- vue.js 中如何解除绑定事件
我们项目中有一个点赞需求,只允许点击一次赞,再次点击则取消赞, 为了防止用户多次连续点击,在点赞后需要解绑事件,成功调取API后,才可再次点击取消赞. 目前用的方法是加入一个flag控制点击事件可否点 ...
- 181. 将整数A转换为B
181. 将整数A转换为B 如果要将整数A转换为B,需要改变多少个bit位? 注意事项 Both n and m are 32-bit integers. 您在真实的面试中是否遇到过这个题? Yes ...
- 原生ajax提交php后台接收不到问题
var xmlHttp; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); ...
- 初始Mybatis,好累,自己感觉自己快坚持不了了
Mybatis1.持久化 持久化,就是内存数据和硬盘数据状态的转换 2.ORM思想Object Relation Mapping 对象关系映射 3.MyBatis入门案例 3.1导入jar包 依赖 & ...