JBTALKS.CC

标题: 请大大解释java问题 [打印本页]

作者: loonloon    时间: 2010-7-20 07:22 PM
标题: 请大大解释java问题
  1. public class A {
  2.     void m1(A a){
  3.         System.out.print("A");
  4.     }
  5. }
复制代码
  1. public class B extends A {
  2.      void m1(B b){
  3.         System.out.print("B");
  4.     }
  5. }
复制代码
  1. public class C extends B {
  2.     void m1(C c){
  3.         System.out.print("C");
  4.     }
  5. }
复制代码
  1. public class D extends C {
  2. void m1(D d){
  3.         System.out.print("D");
  4.     }
  5.     public static void main(String[] args) {
  6.         // TODO code application logic here
  7.         A a1 = new A();
  8.         B b1 = new B();
  9.         C c1 = new C();
  10.         D d1 = new D();

  11.         d1.m1(a1);
  12.         d1.m1(b1);
  13.         d1.m1(c1);
  14.     }
  15. }
复制代码
最后的output 是 ABC,但是我不是很清楚怎样运作. 谢谢各大大解析
作者: 03-342    时间: 2010-7-20 07:32 PM
仁兄,请问你现在在学J2SE吗?
作者: loonloon    时间: 2010-7-20 07:39 PM
我还在初学当中
作者: 宅男-兜着走    时间: 2010-7-20 07:40 PM
最后的output 是 ABC,但是我不是很清楚怎样运作. 谢谢各大大解析
loonloon 发表于 2010-7-20 07:22 PM


你的 Class 内

  1. public class A {
  2.     void m1(A a){ // 我不理解你 Pass进 Class A 过后, 却没用 A。 你大可不必有这个 Parameter。 直接改成。
  3.         System.out.print("A");
  4.     }
  5. }

  6. // 这样。

  7. public class A {
  8.     void m1(){
  9.         System.out.print("A");
  10.     }
  11. }
复制代码

  1. public static void main(string[] args)
  2. {
  3. A  a = new A();
  4. a.mi();
  5. //基本上就能了。
  6. }
复制代码

作者: imCobRa    时间: 2010-7-20 07:52 PM
楼主你用的是method
然后有inheritances class的attribute
第一个就是代表会出现A
第二个就是出现B
第三个就是会出现C
第四个就是说第四个拥有C的特征(class D extends C )
        A a1 = new A();
        B b1 = new B();
        C c1 = new C();
        D d1 = new D();
这四个就是declare 出来...
d1.m1(a1);
        d1.m1(b1);
        d1.m1(c1);
这三个是output
d1.m1就是说m1里面的d1,挂号里面的a1,b1,c1就是要display的东西
放在你的第一第二第三个code
void m1(A a){
        System.out.print("A");
大致上就是这样,希望你会明白
作者: loonloon    时间: 2010-7-20 07:54 PM
谢谢, 宅男-兜着走,但是我想知道当 object reference a1, b1, c1, d1 pass into
d1.mi(a1);
d1.mi(b1);
d1.mi(c1);
为什么会是 ABC
作者: imCobRa    时间: 2010-7-20 07:56 PM
回复 4# 宅男-兜着走


    如果要更简单,就declare好东西在上面,不要用method直接
System.out.println("你要的东西");
就好了= =
不过这位大大的做法也对,不过类似好像比较旧的写法
作者: 宅男-兜着走    时间: 2010-7-20 07:59 PM
回复  宅男-兜着走


    如果要更简单,就declare好东西在上面,不要用method直接
System.out.printl ...
imCobRa 发表于 2010-7-20 07:56 PM


更简单就是。
System.out.print("ABC" );
就好了。

== 什么Class 都不必写, 初学来说, 学Java 已经绕了一大圈。
作者: imCobRa    时间: 2010-7-20 07:59 PM
回复 6# loonloon


     A a1 = new A();
        B b1 = new B();
        C c1 = new C();
        D d1 = new D();
你自己写了啊,你把上面的
class A {
    void m1(A a){
        System.out.print("A");
a1就会display"A"出来啊
d1.mi(a1);
d1.mi(b1);
d1.mi(c1);
这个d1继承了前面的东西,所以就能跑class的啊
作者: imCobRa    时间: 2010-7-20 08:00 PM
回复 8# 宅男-兜着走


    哈哈,你这句赞!
直接给一个SOP= =
作者: loonloon    时间: 2010-7-20 08:01 PM
Lol,这个是我学院的题目来的 xD
作者: 宅男-兜着走    时间: 2010-7-20 08:06 PM
谢谢, 宅男-兜着走,但是我想知道当 object reference a1, b1, c1, d1 pass into
d1.mi(a1);
d1.mi(b1) ...
loonloon 发表于 2010-7-20 07:54 PM


同学, 你什么都不比懂先, 你先理解 什么是 System.out.print(); 这句.

System 是个Object, out 可能是个 Property 会Field, 暂且不说那么多。

out里面包含了, print(); , println() 的方法(method).

那么 System.out.println(). System.out.print() 到底意思是什么呢??

意思就是, System.out.print(); 其实就是 output 文字 等等的, 看得见的东西, 然后 放进您的 Console 程式内。

例子

  1. System.out.println("ABC");
  2. System.out.print("ABC");

  3. 你的Output :
  4. ABC
  5. ABC

  6. System.out.print("ABC");
  7. System.out.println("ABC");
  8. 如果这样的话,你Output会是 : ABCABC

  9. 但是同样的原理, 你也能这样:
  10. System.out.print("ABC\n");
  11. System.out.print("ABC");
  12. p:s ; \n 的意思是, string 内 下一行。
复制代码
基本上 这句已经说完了。


还有这位大大, 如果你要写 你刚才第一楼给我们看的方法, 持续下去是好事。 但是初学入门, 你可以不必写到如此先。 你先去了解最基本的写法。
作者: 宅男-兜着走    时间: 2010-7-20 08:08 PM
回复  宅男-兜着走


    哈哈,你这句赞!
直接给一个SOP= =
imCobRa 发表于 2010-7-20 08:00 PM



    SOP 什么意思==
作者: loonloon    时间: 2010-7-20 08:19 PM
System.out.print();




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5