文章目录
方法参数类型
类名作为形式参数
当你以后看到一个方法的形参要一个 类 类型,你就传递一个该类的对象。
自定义类如下:
class Student{
int num=20;
public void show(Student student,int num){
//形参为类 类型,传递该类的对象
student.num=num;
//修改调用这个show方法的对象的属性值
this.num=90;
}
}
测试类如下:
public class demo1 {
public static void main(String[] args) {
Student student=new Student();
set(student,60);
//传入一个新的student匿名对象,并修改这个匿名对象的属性值,最后修改调用这个show方法的对象的属性值
student.show(new Student(),80);
System.out.println(student.num);//90
}
//形参为类 类型,传递该类的对象
public static void set(Student student ,int num) {
//修改传入对象的属性值
student.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) {
this.num=num;
}
}
测试类如下:
public class demo1 {
public static void main(String[] args) {
Cat cat=new Cat();
set(cat,100);
System.out.println(cat.num);//60
cat.show(500);
System.out.println(cat.num);//500
}
public static void set(Animal animal,int num) {
//Animal animal=cat 多态访问成员变量依照父类的值
animal.num=num;
}
}
接口名作为形式参数
当你以后看到一个方法的形参要一个接口 类型 ,你就传递一个该接口的子类对象。
自定义接口如下:
interface Myinterface{
int num=2000;
void show(int num);
}
class Myclass implements Myinterface{
int num=2;
@Override
public void show(int num) {
//修改调用此方法的对象的num值
this.num=num;
}
}
测试类如下:
public class demo1 {
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()是运行子类Myclass的show方法
myinterface.show(num);
}
}
返回值类型
类名作为返回值类型
当你以后看到一个方法的返回值类型,是一个类 类型,你就返回一个该类的对象
自定义类如下:
class Student{
int num=30;
//返回值类型为类类型,定义一个返回自身对象的方法
public Student getStu(){
return this;
}
}
测试类如下:
public class 返回值为类类型 {
public static void main(String[] args) {
Student stu=getStudent();
Student stu1=stu.getStu();
System.out.println(stu==stu1);//True
System.out.println(stu.num==stu1.num);//True
}
public static Student getStudent(){
Student student = new Student();
student.num=20;
return new Student();
}
}
抽象类名作为返回值类型
自定义类如下:
abstract class Animal{
int num=20;
}
class Dog extends Animal{
int num=100;
}
测试类如下:
public class Demo1 {