日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

刷题01

發布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 刷题01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • println()打印數組
    a.
  • int[] arr = new int[]{1,2,3};System.out.println(arr);

    b.

    char[] arr1 = new char[]{'a','b','c'};System.out.println(arr1);

    輸出結果:

    解析:a的println()調用的是Object類中的toString()方法,先將數組轉換成String類型然后輸出,就是地址值了,
    相當于:System.out.println(Arrays.toString(arr));
    而b輸出的就是abc,因為println()只有一個數組類型,就是char[],才是數組輸出,其他都如同a結果。

    2.網紅題:控制輸出

    解析:若是看成單純的參數傳遞就慘了,系統調用完method()之后,就會將method()方法內聲明的變量彈出棧,而它指向的堆內存中的對象就會成為垃圾被回收;表示method()方法內的變量只在method()方法內有效,如果在main()中輸出a,b,還會是堆內存中屬性指向的a,b,即還是10;
    思路:改變main()中的輸出語句,要么阻止它輸出,要么重寫。
    方法一:避免在main()中輸出,即在method()中給變量做運算之后立馬輸出,并且調用System.exit(0)方法來終止程序,此方法表示結束當前正在運行的JVM,不給main()機會執行輸出語句。
    tips:System.exit()源碼如下:

    //System.exit()源碼: public static void exit(int status) {Runtime.getRuntime().exit(status); } //方法一:public static void method(int a,int b){a = a*10;b = b*20;System.out.println(a);System.out.println(b);System.exit(0);}

    運行結果:

    //方法二:重寫輸出語句public static void method(int a,int b){PrintStream ps = new PrintStream(System.out){@Overridepublic void println(String x){if("a=10".equals(x)){x = "a = 100";}else if("b =10".equals(x)){x = "b = 200";}super.println(x);}};System.setOut(ps);

    運行結果:

    3.多態題目的考察
    判斷下面的輸出結果,以及

    public class InterViewTest {public static void main(String[] args) {Base1 base = new Sub1();base.add(1,2,3); //輸出結果是Sub1,重寫了Sub1 s = (Sub1)base;s.add(1,2,3); //強轉 輸出sub2} } class Base1{public void add(int a,int ... arr){System.out.println("base1");} } class Sub1 extends Base1{public void add(int a,int[] arr){ //重寫System.out.println("Sub1");}public void add(int a,int b,int c){ //沒有重寫,編譯的是父類,調用的是子類重寫的方法System.out.println("sub2");} }

    tips:表示編譯器認為形參int … arr與int[] arr是一樣的;

    4.題目:
    定義GeometricObject 類:

    public class GeometricObject { //幾何圖形protected String color;protected double weight;public GeometricObject(String color,double weight){super();this.color = color;this.weight = weight;}//……省略屬性的get/set方法public double findArea(){ //子類重寫return 0.0;} }

    Circle 子類

    class Circle extends GeometricObject{private double radius;Circle(double radius,String color,double weight){super(color, weight);this.radius = radius;} //省略get/set方法 //……@Overridepublic double findArea() {return 3.14 * radius * radius;} }

    MyRectangle 子類:

    class MyRectangle extends GeometricObject{double width;double height;MyRectangle(double width,double height,String color,double weight){super(color, weight);this.width = width;this.height = height; //省略get/set方法 //……@Overridepublic double findArea() {return width * height;} }

    GeometricObjectTest 測試類:

    public class GeometricObjectTest {public static void main(String[] args) {GeometricObjectTest test = new GeometricObjectTest();Circle c1 = new Circle(2.3, "red", 1.0);test.displayGeometricObject(c1); Circle c2 = new Circle(3.3, "red", 1.0);test.displayGeometricObject(c2); boolean isEquals = test.equalsArea(c1,c2);System.out.println(isEquals);}//現實對象的面積public void displayGeometricObject(GeometricObject o){ //GeometricObject = new Circle(...);虛擬調用System.out.println("面積為:" +o.findArea());}//測試兩個對象的面積是否相等public boolean equalsArea(GeometricObject o1, GeometricObject o2){return o1.findArea() == o2.findArea();} }

    總結

    以上是生活随笔為你收集整理的刷题01的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。