形式参数的问题

来源:互联网 发布:达拉然火焰卡背淘宝 编辑:程序博客网 时间:2024/06/05 16:12


形式参数的问题:

             

     引用类型和返回值类型:

                    类:要的是该类的对象

                   抽象类:要的是该抽象类的子类对象

                   接口:要的是该接口的子实现类的对象

          引用类型:

             类:该类的对象

             代码:

class Student{
public void show(){
System.out.println("Good Good Study,Day Day Up");
}
}


class StudentDemo{
public void method(Student s){//s =new Student(); Student s = new Student();
s.show(); 
}
}


//测试类
public class StudentTest {
public static void main(String[] args) {
//需求:需要调用StudentDemo中method方法
//1)创建StudentDemo对象
StudentDemo sd = new StudentDemo() ;
//2)创建Student类的对象
Student s = new Student() ;
//3)将对象名作为参数进行传递
sd.method(s);

//匿名对象
new StudentDemo().method(new Student());
}
}

             抽象类:该抽象类的子类对象

             代码:

abstract class Teacher{
public abstract void teach();



class TeacherDemo{
public void method(Teacher t){//Teacher t = new Teacher();错误:Teacher抽象类,抽象类多态:通过父类引用指向子类对象去操作!
t.teach();
}
}


//子类 必须要有 通过子类去实现
class BasicTeacher extends Teacher{


@Override
public void teach() {
System.out.println("基础班老师教JavaSE...");
}

}
//测试类
public class TeacherTest {
public static void main(String[] args) {
/*
* 需求:调用TeacherDemo中的method()方法

* 不能直接用TecherDemo的对象去调用method(),里面的参数是一个抽象类,而抽象类不能直接实例化,
* 所有需要子类进行实例化
* */

TeacherDemo td = new TeacherDemo() ;
//抽象类多态:
Teacher t = new BasicTeacher() ;
td.method(t);
}
}

              接口:该借口的子实现类对象

              代码:

interface Love{
public abstract void love();
}


class PersonDemo{
public void method(Love l){//接口也不能直接实例化,只能通过接口多态形式
l.love();
}
}


/
/需要创建一个子实现类进行数据的传递
class Teacher3 implements Love{


@Override
public void love() {
System.out.println("老师爱学生,爱Java,爱高圆圆");
}

}
//测试类
public class PersonTest {
public static void main(String[] args) {
//需求:调用PersonDemo中的method()方法
//创建PersonDemo对象
PersonDemo pd = new PersonDemo() ;
//使用接口多态:
Love l = new Teacher3() ;
pd.method(l);
}
}

           返回值类型

              类:该类的对象
             代码:
class Student2{
public void show(){
System.out.println("Good Good Study,Day Day Up");
}
}


class StudentDemo2{
//这个方法返回值类型是:类
public Student2 getStudent2(){

// Student2 s = new Student2() ;
// return s ;//有名字的对象

return new Student2();//匿名对象

}
}


//测试类
public class StudentTest2 {
public static void main(String[] args) {
//创建对象
// StudentDemo2 sd = new StudentDemo2() ;
// //使用sd是StudentDemo2 对象名,
// Student2 s = sd.getStudent2() ;
// s.show();


//链式编程:
new StudentDemo2().getStudent2().show();
}
}
               抽象类:该类的子类对象
               代码:
abstract class Teacher2{
public abstract void teach() ;
}
class TeacherDemo2{
public Teacher2 getTeacher2(){

//return new Teacher2();:错误的写法
return new WorkTeacher();
}
}

//必须重写抽象方法
class WorkTeacher extends Teacher2{
@Override
public void teach() {
System.out.println("就业班老师教JavaEE,大数据..");
}
}
//测试
public class TeacherTest2 {
public static void main(String[] args) {
//创建TeacherDemo2对象,使用对象去调用成员方法
TeacherDemo2 td = new TeacherDemo2() ;
Teacher2 t= td.getTeacher2() ;
t.teach();

//链式编程
new TeacherDemo2().getTeacher2().teach();
}
}
              接口:该借口的子实现类对象
              代码:
interface Love2{
public abstract void love() ;
}

class PersonDemo2{
public Love2 getLove2(){

Love2 l = new Student3();
return l;

// return new Student3();
}
}

//子实现类类
class Student3 implements Love2{
@Override
public void love() {
System.out.println("学生爱学习,爱Java,爱放假...");
}
}
public class PersonDemoTest2 {
public static void main(String[] args) {
//使用链式编程调用
new PersonDemo2().getLove2().love(); 
}
}
原创粉丝点击