10-02 Java 形式参数和返回值的问题深入研究,链式编程

前端之家收集整理的这篇文章主要介绍了10-02 Java 形式参数和返回值的问题深入研究,链式编程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

形式参数和返回值的问题:

1123方法1().方法2().......方法n();
    这种<a href="https://www.jb51.cc/tag/yongfa/" target="_blank" class="keywords">用法</a>:其实在<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>1()<a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a>完毕后,应该一个对象;
              <a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>2()<a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a>完毕后,应该返回一个对象。
              <a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>n()<a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a>完毕后,可能是对象,也可以不是对象。</span></pre>

类名作为形式参数

"Good Good Study,Day Day Up"<span style="color: #0000ff;">class<span style="color: #000000;"> StudentDemo {
<span style="color: #0000ff;">public
<span style="color: #0000ff;">void
method(<span style="color: #ff0000;">Student s
) { <span style="color: #008000;">//
<span style="color: #008000;">ss; <span style="color: #ff0000;">ss = new Student(); 需要的是该类的对象

<span style="color: #000000;"> s.study();
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> StudentTest {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">需求:我要测试Student类的study()方法
Student s = <span style="color: #0000ff;">new<span style="color: #000000;"> Student();
s.study();
System.out.println("----------------"<span style="color: #000000;">);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;需求2:我要测试StudentDemo类中的method()<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a></span>
    StudentDemo sd = <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; StudentDemo();
    <span style="color: #ff0000;"&gt;Student ss </span></span><span style="color: #ff0000;"&gt;= new</span><span style="color: #000000;"&gt;<span style="color: #ff0000;"&gt; Student();</span>
    sd.method(<span style="color: #ff0000;"&gt;ss</span>);
    System.out.println(</span>"----------------"<span style="color: #000000;"&gt;);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;匿名对象<a href="https://www.jb51.cc/tag/yongfa/" target="_blank" class="keywords">用法</a></span>
    <span style="color: #0000ff;"&gt;new</span> StudentDemo().method(<span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; Student());
}

}

抽象类名作为形式参数

接口 <span style="color: #0000ff;">class<span style="color: #000000;"> PersonDemo {
<span style="color: #0000ff;">public
<span style="color: #0000ff;">void
method(Person p) {<span style="color: #ff0000;">//p; p = new Student(); Person p = new Student(); //多态

<span style="color: #000000;"> p.study();
}
}

<span style="color: #008000;">//<span style="color: #008000;">定义一个具体的学生类
<span style="color: #0000ff;">class Student <span style="color: #0000ff;">extends<span style="color: #000000;"> Person {
<span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> study() {
System.out.println("Good Good Study,Day Day Up"<span style="color: #000000;">);
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> PersonTest {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">目前是没有办法的使用的
<span style="color: #008000;">//<span style="color: #008000;">因为抽象类没有对应的具体类
<span style="color: #008000;">//<span style="color: #008000;">那么,我们就应该先定义一个具体类
<span style="color: #008000;">//<span style="color: #008000;">需求:我要使用PersonDemo类中的method()方法
PersonDemo pd = <span style="color: #0000ff;">new<span style="color: #000000;"> PersonDemo();
<span style="color: #ff0000;">Person p <span style="color: #ff0000;">= new<span style="color: #000000;"><span style="color: #ff0000;"> Student();
pd.method(<span style="color: #ff0000;">p);
}
}

接口名作为形式参数

<span style="color: #0000ff;">class<span style="color: #000000;"> LoveDemo {
<span style="color: #0000ff;">public
<span style="color: #0000ff;">void
method(<span style="color: #ff0000;">Love l
) { <span style="color: #008000;">//
<span style="color: #008000;">l; <span style="color: #ff0000;">l = new Teacher(); Love l = new Teacher(); 多态

<span style="color: #000000;"> l.love();
}
}

<span style="color: #ff0000;">//定义具体类实现接口
<span style="color: #0000ff;">class Teacher <span style="color: #0000ff;">implements<span style="color: #000000;"> Love {
<span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> love() {
System.out.println("老师爱学生,爱Java,爱林青霞"<span style="color: #000000;">);
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> TeacherTest {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">需求:我要测试LoveDemo类中的love()方法
LoveDemo ld = <span style="color: #0000ff;">new<span style="color: #000000;"> LoveDemo();
<span style="color: #ff0000;"> Love l <span style="color: #ff0000;">= new<span style="color: #000000;"><span style="color: #ff0000;"> Teacher();
ld.method(l);
}
}

 

类名作为返回值类

抽象类: 接口: "Good Good Study,Day Day Up"<span style="color: #0000ff;">class<span style="color: #000000;"> StudentDemo {
<span style="color: #0000ff;">public
<span style="color: #000000;"><span style="color: #ff0000;"> Student
getStudent() {
<span style="color: #008000;">//
<span style="color: #008000;">Student s = new Student();
<span style="color: #008000;">//<span style="color: #008000;">Student ss = s;

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;Student s = new Student();
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;return s;</span>
   <span style="color: #ff0000;"&gt; return new</span><span style="color: #000000;"&gt;<span style="color: #ff0000;"&gt; Student();</span>
}

}

<span style="color: #0000ff;">class<span style="color: #000000;"> StudentTest2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">需求:我要使用Student类中的study()方法
<span style="color: #008000;">//<span style="color: #008000;">但是,这一次我的要求是,不要直接创建Student的对象
<span style="color: #ff0000;">//让你使用StudentDemo帮你创建对象
StudentDemo sd = <span style="color: #0000ff;">new<span style="color: #000000;"> StudentDemo();
Student s = sd.getStudent(); <span style="color: #ff0000;">//new Student(); Student s = new Student();
<span style="color: #000000;"> s.study();
}
}

 

抽象类作为返回值类型

接口: <span style="color: #0000ff;">class<span style="color: #000000;"> PersonDemo {
<span style="color: #0000ff;">public
<span style="color: #000000;"><span style="color: #ff0000;"> Person
getPerson() {
<span style="color: #008000;">//
<span style="color: #008000;">Person p = new Student();
<span style="color: #008000;">//
<span style="color: #008000;">return p;

    <span style="color: #ff0000;"&gt;return new</span><span style="color: #000000;"&gt;<span style="color: #ff0000;"&gt; Student();</span>
}

}

<span style="color: #0000ff;">class Student <span style="color: #0000ff;">extends<span style="color: #000000;"> Person {
<span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> study() {
System.out.println("Good Good Study,Day Day Up"<span style="color: #000000;">);
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> PersonTest2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">需求:我要测试Person类中的study()方法
PersonDemo pd = <span style="color: #0000ff;">new<span style="color: #000000;"> PersonDemo();
Person p = pd.getPerson(); <span style="color: #ff0000;">//new Student(); Person p = new Student(); 多态
<span style="color: #000000;"> p.study();
}
}

 

接口作为返回值类型

<span style="color: #0000ff;">class<span style="color: #000000;"> LoveDemo {
<span style="color: #0000ff;">public
<span style="color: #000000;"> Love getLove() {
<span style="color: #008000;">//
<span style="color: #008000;">Love l = new Teacher();
<span style="color: #008000;">//
<span style="color: #008000;">return l;

    <span style="color: #0000ff;"&gt;return</span> <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; Teacher();
}

}

<span style="color: #008000;">//<span style="color: #008000;">定义具体类实现接口
<span style="color: #0000ff;">class Teacher <span style="color: #0000ff;">implements<span style="color: #000000;"> Love {
<span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> love() {
System.out.println("老师爱学生,爱林青霞"<span style="color: #000000;">);
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> TeacherTest2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">如何测试呢?
LoveDemo ld = <span style="color: #0000ff;">new<span style="color: #000000;"> LoveDemo();
Love l = ld.getLove(); <span style="color: #008000;">//<span style="color: #008000;">new Teacher(); Love l = new Teacher(); 多态
<span style="color: #000000;"> l.love();
}
}

 

链式编程

调用完毕方法后,返回的是一个对象。 "Good Good Study,Day Day Up"<span style="color: #0000ff;">class<span style="color: #000000;"> StudentDemo {
<span style="color: #0000ff;">public
<span style="color: #000000;"> Student getStudent() {
<span style="color: #0000ff;">return
<span style="color: #0000ff;">new
<span style="color: #000000;"> Student();
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> StudentTest3 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">如何调用的呢?
StudentDemo sd = <span style="color: #0000ff;">new<span style="color: #000000;"> StudentDemo();
<span style="color: #008000;">//<span style="color: #008000;">Student s = sd.getStudent();
<span style="color: #008000;">//<span style="color: #008000;">s.study();

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;大家注意了,这里采用链式编程</span>

<span style="color: #000000;"><span style="color: #ff0000;"> sd.getStudent().study();
}
}

 原文链接:https://www.f2er.com/java/403342.html

猜你在找的Java相关文章