1.方法参数类型以及返回值类型问题研究
1.01方法参数类型
1.类名作为形式参数
当你以后看到一个方法的形参要一个 类 类型,你就传递一个该类的对象。
public static void main(String[] args) {
Student student = new Student();
set(student, 60);
student.show(new Student(), 80);//如果新new的new Student()没有进行实例化,就不会执行。
System.out.println(student.num); //运行结果:60
}
public static void set(Student student, int num)
{
student.num = num;
}
}
class Student {
int num = 20;
public void show(Student student, int num) {
student.num = num;
//this 代表那个调用者
//this.num=90;
}
}
2.抽象类名作为形式参数
当你以后看到一个方法的形参要一个抽象类 类型,你就传递一个该抽象类的子类对象。
public static void main(String[] args) {
//当你以后看到一个方法的形参要一个抽象类 类型,你就传递一个该类的 子类对象。
Cat cat = new Cat();
set(cat, 100);//传参
cat.show(500);
System.out.println(cat.num);//
}
public static void set(Animal animal, int num) {
//方法的形参要一个抽象类
animal.num = num;
// ((Cat) animal).num=num;
}
}
abstract class Animal {
int num = 50;
public abstract void show(int num);
}
class Cat extends Animal {
int num = 60;
@Override
public void show(int num) {
super.num = num;
this.num=num;
}
}
3.接口名作为形式参数
你以后看到一个方法的形参要一个接口 类型 ,你就传递一个该接口的子类对象。
public class Mytest {
public static void main(String[] args) {
//当你以后看到一个方法的形参,要一个接口 类型,你就传递一个接口的子类对象。
MyClass myClass = new MyClass();
set(myClass,400);
System.out.println(myClass.num); //400
System.out.println(MyInterface.num); //2000
}
public static void set(MyInterface myInterface,int num){
myInterface.show(num);
}
}
interface MyInterface {
public static final int num=2000;//接口默认常量
void show(int num);
}
class MyClass implements MyInterface{
int num=2;
&