java形式参数和返回值的深入研究

1 形式参数

  • 基本类型:形参的改变不影响实际参数
  • 引用类型:
      类:需要的是该类的具体对象
      抽象类:需要的是该抽象类的具体子类对象
      接口:需要的是该接口的具体实现类对象
public class Student{
	public void study(){
		System.out.println("向钱看,向厚赚。");
	}
}
public class StudentDemo{
	public void method(Student s){//Student s = new Student()
		s.study();
	}
}
public class Demo{
	public static void main(String[] args){
		//我要使用Student中的study()方法
		Student s = new Student();
		s.study();
		System.out.println("-----------------------");
		//我要使用StudentDemo类中的method()方法
		//StudentDemo sd = new StudentDemo();

		//Student ss = new Student();
		//sd.method(ss);
		//sd.method(new Student());
		new StudentDemo().method(new Student());
		System.out.println("-----------------------");
	}
}
  1. 抽象类多态
public abstract class Person{
	public abstract void study();
}
public class PersonDemo{
	public void method(Person p){//Person p = new Stu()
		p.study();
	}
}
public class Stu extends Person{
	public void study(){
		System.out.println("向钱看,向厚赚。买房,买车,娶媳妇。");
	}
}
public class Demo{
	public static void main(String[] args){
		//我要使用PersonDemo类中的method()方法
		PersonDemo pd = new PersonDemo();
		Person p = new Stu();//抽象类多态
		//目前这个方法调用不了,因为抽象类无法实例化
		//抽象类可以依赖具体的子类实现实例化
		pd.method(p);
	}
}
  1. 接口多态
public interface Inter{
	public abstract void hobby();
}
public class InterDemo{
	public void method(Inter i){ // Inter i = new Stu();
		i.hobby();
	}
}
public class Stu implements Inter{
	public void hobby(){
		System.out.println("向钱看,向厚赚");
	}
}
public class Demo{
	public static void main(String[] args){
		// 使用InterDemo类中的method()方法
		InterDemo id = new InterDemo();
		Inter i = new Stu(); // 接口多态
		id.method(i);
	}
}

2 返回值

类:返回该类的具体对象
抽象类:返回该抽象类的具体子类对象
接口:返回该接口的具体实现类对象

public class Stu{
	public void study(){
		System.out.println("向钱看,向厚赚");
	}
}
public class StuDemo{
	public Stu get(){
		// Stu s = new Stu();
		// return s;
		return new Stu();
	}
}
public class Demo{
	public static void main(String[] args){
		// 使用Stu类中的study方法
		// 要求不能直接创建Stu对象
		// 使用StuDemo获取一个Stu对象
		StuDemo sd = new StuDemo();
		Stu s = sd.get();
		s.study();
	}
}
  1. 抽象类
public abstract class Person{
	public abstract void study();
}
public class PersonDemo{
	public Person get(){
		// Person p = new Tea();
		// return p;
		return new Tea();
	}
}
public class Tea extends Person{
	public void study(){
		System.out.println("老师爱学习");
	}
}
public class Demo1{
	public static void main(String[] args){
		PersonDemo pd = new PersonDemo();
		Person p = pd.get(); // new Tea();

		// 使用Person中的study方法
		// 使用PersonDemo中的get方法获取一个person对象
		p.study();
	}
}

  1. 接口
public interface Inter{
	public abstract void lover();
}
public class InterDemo{
	public Inter get(){
		// Inter i = new Teacher();
		// return i;
		return new Teacher();
	}
}
public class Teacher implements Inter{
	public void lover(){
		System.out.println("爱车,爱钱,爱美女。。。");
	}
}
public class Demo2{
	public static void main(String[] args){
		InterDemo id = new InterDemo();
		Inter i = id.get();
		i.lover();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值