目录
  1. 1. 形式参数
    1. 1.1. 类做形式参数
      1. 1.1.1.
      2. 1.1.2.
    2. 1.2. 抽象类做形参
      1. 1.2.1.
      2. 1.2.2.
    3. 1.3. 接口做形参
      1. 1.3.1.
      2. 1.3.2.
  2. 2. 返回值
    1. 2.1. 类做返回值
      1. 2.1.1.
      2. 2.1.2.
    2. 2.2. 抽象类做返回值
      1. 2.2.1.
      2. 2.2.2.
    3. 2.3. 接口做返回值
      1. 2.3.1.
      2. 2.3.2.
形式参数和返回值的问题深入研究

形式参数

自定义函数中的“形参”全称为”形式参数” 由于它不是实际存在变量,所以又称虚拟变量。实参和形参可以重名。

类做形式参数

  1. 测试Student类的study()方法

  2. 测试StudentDemo类中的method()方法

class Student {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}

class StudentDemo {
public void method(Student s) {
s.study();
}
}


class StudentTest {
public static void main(String[] args) {
//需求1
Student s = new Student();
s.study();
System.out.println("----------------");

//需求2
StudentDemo sd = new StudentDemo();
Student ss = new Student();
sd.method(ss);
System.out.println("----------------");

//匿名对象用法
new StudentDemo().method(new Student());
}
}

抽象类做形参

使用PersonDemo类中的method()方法

abstract class Person {
public abstract void study();
}

class PersonDemo {
public void method(Person p) {
p.study();
}
}

//定义一个具体的学生类
class Student extends Person {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}

class PersonTest {
public static void main(String[] args) {
// 直接使用是不行的,因为抽象类没有对应的具体类
// 因此定于一个具体的类
PersonDemo pd = new PersonDemo();
Person p = new Student();
// 使用具体类调用method()
pd.method(p);
}
}

接口做形参

测试LoveDemo类中的love()方法

//定义一个爱好的接口
interface Love {
public abstract void love();
}

class LoveDemo {
public void method(Love l) {
l.love();
}
}

//定义具体类实现接口
class Teacher implements Love {
public void love() {
System.out.println("极限挑战,这就是爱");
}
}

class TeacherTest {
public static void main(String[] args) {
LoveDemo ld = new LoveDemo();
Love l = new Teacher();
ld.method(l);
}
}

返回值

类做返回值

使用StudentDemo创建对象,在测试类中使用study()方法

class Student {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}

class StudentDemo {
public Student getStudent() {

}
}

class StudentDemo {
public Student getStudent() {
return new Student();
}
}

class StudentTest {
public static void main(String[] args) {
StudentDemo sd = new StudentDemo();
Student s = sd.getStudent();
s.study();
// 链式编程
sd.getStudent().study();
}
}

抽象类做返回值

测试Person类中的study()方法

abstract class Person {
public abstract void study();
}

class PersonDemo {
public Person getPerson() {

}
}

class PersonDemo {
public Person getPerson() {
// Person p = new Student(); 反抽象类的子类
return new Student();
}
}
// 创建一个具体类继承抽象类,重写study()方法
class Student extends Person {
public void study() {
System.out.println("Good Good Study,Day Day Up");
}
}

class PersonTest {
public static void main(String[] args) {
PersonDemo pd = new PersonDemo();
Person p = pd.getPerson();
p.study();
}
}

接口做返回值

//定义一个爱好的接口
interface Love {
public abstract void love();
}

class LoveDemo {
public Love getLove() {
}
}

class LoveDemo {
public Love getLove() {
//Love l = new Teacher();反回具体类对象
return new Teacher();
}
}

//定义具体类实现接口
class Teacher implements Love {
// 重写Love()方法
public void love() {
System.out.println("极限挑战,这就是爱");
}
}

class TeacherTest {
public static void main(String[] args) {
//测试
LoveDemo ld = new LoveDemo();
Love l = ld.getLove();
l.love();
}
}
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-08/13/%E5%AD%A6%E4%B9%A0/%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0/JAVA/%E5%BD%A2%E5%BC%8F%E5%8F%82%E6%95%B0%E5%92%8C%E8%BF%94%E5%9B%9E%E5%80%BC%E7%9A%84%E9%97%AE%E9%A2%98%E6%B7%B1%E5%85%A5%E7%A0%94%E7%A9%B6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论