【我的Java笔记】形式参数&返回值

形式参数

1.基本数据类型
需要什么数据类型,在传参的时候就传什么数据类型(形式参数的改变对实际参数没有影响)
2.引用类型
1)具体类:若形式参数是一个具体的类,则需要创建该类的对象
2)抽象类:若形式参数为抽象类,则需新定义一个抽象类的子类来进行实例化(抽象类多态
例:
//引用类型为抽象类例子

//声明一个抽象类
abstract class Person{
	public abstract void study() ;
	
}

class PersonDemo{
	//成员方法
	public void method(Person p){
		p.study() ;
	}
}

//自定义一个抽象的子类来进行Person的实例化
class Student extends Person{

	@Override
	public void study() {
		System.out.println("学习");
	}
}

//测试类
public class PersonTest {
	public static void main(String[] args) {
		//需求:调用PersonDemo类中method()方法
		//方式1:
		PersonDemo pd=new PersonDemo();			//抽象类不能新建对象去访问方法
		Person p=new Student();     			//新建抽象类的子类对象
		pd.method(p);
		
		//方式2:链式编程
		new PersonDemo().method(new Student()) ;
	}
}

3)接   口:若形式参数为接口,那需新定义一个接口的子实现类,通过接口多态来进行实例化
例:
//引用类型为接口类型例子

//定义一个接口
interface Inter{
	public abstract void study() ;
}

//定义一个类
class TeacherDemo{
	public void method(Inter i){//接口不能实例化:  如果一个方法的形式参数是一个接口,那么需要创建该接口的子实现类对象
		i.study() ;
	}
}

//接口的子实现类
class Student implements Inter{

	@Override
	public void study() {
		System.out.println("学习java");
	}
}

//测试类
public class TeacherTest {
	public static void main(String[] args) {
		//需求:需要调用TeacherDemo类中的method()方法
		
		//方法1:
		TeacherDemo td = new TeacherDemo() ;
		//创建该接口对象:通过接口多态
		Inter i = new Student() ; //接口多态
		td.method(i);
		System.out.println("----------------");
		
		//方法2:匿名内部类
		Inter i2 = new Inter() {
			
			@Override
			public void study() {
				System.out.println("学习java");
			}
		};
		i2.study();
	}
}



返回值(引用类型)

1.具体类:直接返回该类对象(通常开发中使用匿名对象)

例:

//返回类型为一个具体的类例子

//定义一个类
class Student{
	public void show(){
		System.out.println("好好学习,天天向上");
	}
}

class StudentDemo{
	public Student method(){
		return new Student() ;			//如果方法的返回值是一个具体的类,那么需要该类对象
	}
}

//测试类
public class StudentTest {
	public static void main(String[] args) {
		//需求:需要调用StudentDemo这个类中method()方法
		
		//方法1:创建StudentDemo类对象
		StudentDemo sd = new StudentDemo() ;
		Student s = sd.method() ;
		s.show();
		
		//方法2:使用匿名对象进行访问(返回值为具体类时多使用此方法)
		new StudentDemo().method().show();
	}
}

2.抽象类:返回值若为抽象类,则需返回该抽象类的子类对象

例:

//返回类型为抽象类例子

//定义一个抽象类
abstract class Person{
	public abstract void show() ;
}

class PersonDemo{
	// 如果一个方法的返回值是一个抽象类,需要的返回是该抽象类的子类对象
	public Person method(){ 
		return new Teacher() ;		//Person p = new Teacher() ;
	}
}

//抽象类的子类
class Teacher extends Person{

	@Override
	public void show() {
		System.out.println("老师");
	}
}

//测试类
public class PersonTest {
	public static void main(String[] args) {
		//需求:要调用PersonDemo这个类中的method()方法
		
		//方法1:
		PersonDemo pd = new PersonDemo() ;
		Person p = pd.method() ;			//Person p = new Teacher() ;
		p.show() ;
		System.out.println("----------------");
		
		//方法2:链式编程
		Person p1 = new PersonDemo().method() ;
		p1.show() ;
	}
}

3.接   口:返回值若是接口类型,需返回该接口的子实现类对象

例:

//返回类型为接口例子

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

class TeacherDemo{
	public Love method(){ 
		return new Teacher() ;			//接口多态:Love l = new Teacher();
	}
}

//定义接口的子实现类
class Teacher implements Love{

	@Override
	public void love() {
		System.out.println("老师讲课");
	}
}

//测试类
public class TeacherTest {
	public static void main(String[] args){
		//需求:需要调用TeacherDemo中的method()
		
		TeacherDemo td = new TeacherDemo() ;
		//使用对象名调用功能
		Love l = td.method() ;		//Love l = new Teacher2();    接口多态
		l.love() ;
	}
}











2017.10.22

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值