一个前端工作者的Java打卡
类名作为形参和返回值
例子结构

package com.Java31;
/**
* 猫类,里面有猫的方法
*/
public class Cat {
public void eat() {
System.out.println("猫吃鱼");
}
}
package com.Java31;
/**
* 猫的操作类
*/
public class CatOperator {
// 这里是将猫类作为方法的形参使用
public void useCat(Cat c) {
c.eat();
}
// 这里是返回一个猫类,返回值类型要定义为Cat
public Cat getCat() {
// 首先创建猫类
Cat c = new Cat();
return c;
}
}
package com.Java31;
/**
* 猫的测试类
*/
public class JavaDemo31 {
public static void main(String[] args) {
// 创建操作类的方法
CatOperator co = new CatOperator();
// 调用useCat的方法前需要创建猫类的对象,来赋值给操作类
// co.useCat();
Cat c = new Cat();
co.useCat(c); // 猫吃鱼
Cat ca = co.getCat();
// 这里ca是创建的猫类
ca.eat(); // 猫吃鱼
}
}
抽象类名作为形参和返回值
例子结构

package com.Java32;
/**
* 动物类
*/
public abstract class Animal {
public abstract void eat();
}
package com.Java32;
/**
* 动物类的操作类
*/
public class AnimalOperator {
// 用抽象类作为形参
public void useEat(Animal a) {
a.eat();
}
// 返回值返回抽象类
public Animal getEat() {
Animal a = new Cat();
return a;
}
}
package com.Java32;
/**
* 猫的具体类,继承动物抽象类
*/
public class Cat extends Animal {
// 重写动物类的方法
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
package com.Java32;
/**
* 测试类
*/
public class JavaDemo32 {
public static void main(String[] args) {
// 创建操作类对象,想调用方法,但是没有具体的类
// 此时就要新建一个具体类来重写抽象类的方法
AnimalOperator ao = new AnimalOperator();
Animal a = new Cat();
// 此时可以传参
ao.useEat(a); // 猫吃鱼
Animal eat = ao.getEat();
// 直接调用猫的具体类
eat.eat(); // 猫吃鱼
}
}
接口名作为形参和返回值
例子结构

package com.java33;
/**
* 接口
*/
public interface Jumping {
void jump();
}
package com.java33;
/**
* 接口的操作类
*/
public class JumpingOperator {
// 作为形参
public void useJumping(Jumping j) {
j.jump();
}
// 作为返回值
public Jumping getJumping() {
Jumping j = new Cat();
return j;
}
}
package com.java33;
/**
* 猫类,实现接口
*/
public class Cat implements Jumping {
// 重写接口方法
@Override
public void jump() {
System.out.println("猫会跳高");
}
}
package com.java33;
/**
* 测试类
*/
public class JavaDemo33 {
public static void main(String[] args) {
// 创建操作类对象,但是没有参数,需要新建一个具体类来实现接口
JumpingOperator jo = new JumpingOperator();
// 多态形式创建猫类,编译看左边,执行看右边
Jumping Ca = new Cat();
// 传递过去
jo.useJumping(Ca); // 猫会跳高
Jumping jumping = jo.getJumping();
jumping.jump(); // 猫会跳高
}
}
工作原因,每天一小时打卡,坚持
|