形式参数和返回值

来源:互联网 发布:淘宝退款发空包教程 编辑:程序博客网 时间:2024/06/14 03:34

.形式参数和返回值问题的研究

i:形式参数:
基本数据类型,它对实际参数没有影响(String:字符串:引用类型:作为形式参数和基本数据类型一致:对值的改变没有影响)
引用类型:
    类:需要该类的对象
    抽象类:需要该类的子类对象
    接口:需要该接口的子实现类对象
ii:返回值类型
    类名:
抽象类:
接口:
iii:链式编程一步走
    对象.方法1().方法2()......方法n();
这种用法:在方法1()调用完毕后应该一个对象;方法2()调用完毕后应该返回一个对象;方法n()调用完毕后可能是对象也可能不是对象
A:类作为形式参数,要的是该类的对象
代码:

class Student{
public void show(){
System.out.println("Good Good Study,Day Day Up");
}
}
class Demo{
public void show2(Student s){//类作为形式参数传递,此时需要的实际参数就是该类的对象
s.show();
}
}
public class StudentDemo {
public static void main(String[] args) {
//方式一:
//需求,调用Demo中的method方法
Demo d=new Demo();
Student s=new Student();
d.show2(s);
System.out.println(".....");
//方式二:匿名对象
new Demo().show2((new Student()));
}
}
B:抽象类作为返回值类型:抽象类不能直接实例化,就需要抽象类的子类对象
代码:

abstract class Teacher{
public void show(){
System.out.println("今天天气真好");
}
}
//创建了一个该抽象类的子类
class Son extends Teacher{
}
class Demo2{
//抽象类作为一个返回值类型
public Teacher getTeacher(){
//抽象的多态形式
//Teacher t=new Son();
//return t;
return new Son();
}
}
//测试类
public class TeacherDemo {
public static void main(String[] args) {
Demo2 d=new Demo2();
Teacher t=d.getTeacher();//d.getTeacher()隐藏了return new Son();  这句话相当于Teacher t=new Son();
t.show();
}
}
C:接口作为形式参数
interface Love{
public abstract void love();
}
//定义一个接口的子实现类
class Wo implements Love{
public void love(){
System.out.println("我爱学习");
}
}
class Person{
public void love(Love l){//接口作为形式参数,接口不能直接实例化
l.love();
}
}
public class PersonDemo {
public static void main(String[] args) {
//需要调用Person中的love():如何操作
//需要创建该接口的子实现类
//创建person 类的对象
Person p=new Person();
Love l=new Wo();
l.love();
//匿名对象的方式:
new Person().love(new Wo());
}
}
D:接口作为返回值,需要返回的是接口的子实现类对象
代码:

interface Love2{
public abstract void love();
}
//创建该接口的子实现类
class Wo2 implements Love2{
public void love(){
System.out.println("我不爱学习");
}
}
class Person2{
public Love2 getLove2(){
return new Wo2();
}

}
public class PersonTest {
public static void main(String[] args) {
//调用Personzhong de getLove2()方法
Person2 p=new Person2();
Love2 l=new Wo2();
l.love();
//匿名对象
new Person2().getLove2().love();
}
}
原创粉丝点击