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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java12-day03【​​​​​​​(类名、抽象类名、接口名)作为形参和返回值、内部类、常用API(Math、System、toString()、Arrays)、冒泡】

發布時間:2024/9/30 java 30 豆豆
  • 視頻+資料(工程源碼、筆記)【鏈接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg? ?提取碼:zjxs】
  • Java基礎--學習筆記(零起點打開java世界的大門)--博客匯總表

目? ?錄

01_類名作為形參和返回值

1.1、類名作為形參和返回值

02_抽象類名作為形參和返回值

1.2、抽象類名作為形參和返回值

03_接口名作為形參和返回值

1.3、接口名作為形參和返回值

04_內部類

1.1、內部類概述

05_成員內部類

1.2、成員內部類

06_局部內部類

1.3、局部內部類

07_匿名內部類

1.4、匿名內部類

08_匿名內部類在開發中的使用

1.5、匿名內部類在開發中的使用

09_Math

1.1、Math類概述

1.2、Math類的常用方法

10_System

2.1、System概述

2.2、System類的常用方法

11_Object類的toString()方法

3.1、Object類的概述

12_Object類的equals()方法

3.2、Object類的常用方法

13_冒泡排序原理

4.1、冒泡排序

14_冒泡排序代碼實現

15_Arrays

4.2、Arrays類的概述和常用方法


01_類名作為形參和返回值

1.1、類名作為形參和返回值

1、類名作為方法的形參

  • 方法的形參是類名,其實需要的是該類的對象。
  • 實際傳遞的是該對象的【地址值】

2、類名作為方法的返回值

  • 方法的返回值是類名,其實返回的是該類的對象。
  • 實際傳遞的,也是該對象的【地址值】

02_抽象類名作為形參和返回值

1.2、抽象類名作為形參和返回值

  • 方法的形參是抽象類名,其實需要的是該抽象類的子類對象。
  • 方法的返回值是抽象類名,其實返回的是該抽象類的子類對象。

03_接口名作為形參和返回值

1.3、接口名作為形參和返回值

  • 方法的形參是接口名,其實需要的是該接口的實現類對象。
  • 方法的返回值是接口名,其實返回的是該接口的實現類對象。

04_內部類

1.1、內部類概述

05_成員內部類

1.2、成員內部類

按照內部類 在類中定義的位置不同,可以分為如下兩種形式:

  • 在類的成員位置:成員內部類
  • 在類的局部位置:局部內部類

成員內部類的定義位置

  • 在類中方法,跟成員變量是一個位置。

成員內部類,外界如何創建對象使用呢?(外界創建成員內部類格式)

  • 格式:外部類名.內部類名 對象名 = 外部類對象.內部類對象;
  • 舉例:Outer.Inner oi = new Outer().new Inner();

成員內部類的推薦使用方案

  • 將一個類,設計為內部類的目的,大多數都是不想讓外界去訪問,所以內部類的定義應該私有化,私有化之后,再提供一個可以讓外界調用的方法,方法內部創建內部類對象并調用。

使用 成員內部類,就是為了 成員內部類中的內容隱藏起來,并不想讓外界直接看到(不能直接訪問)。

∴ 內部類的修飾符,一般用private,而不是public。【“ Outer.Inner oi = new Outer().new Inner(); ” 失效!!!】

06_局部內部類

1.3、局部內部類

局部內部類 定義位置

  • 局部內部類是在方法中定義的類。

局部內部類 調用方式

  • 局部內部類是在方法中定義的類,外界無法直接使用,需要在方法內部創建對象并使用。
  • 該類可以直接訪問外部類的成員,也可以訪問方法內的局部變量。

07_匿名內部類

1.4、匿名內部類

重寫方法:繼承類或實現接口。

new xxx:說明是一個對象,但是對象沒有名字。

匿名內部類,本質是一個對象,繼承類或實現接口。

多次調用匿名內部類的方法:

匿名內部類是一個對象,對象有返回值類型。此匿名內部類實現了Inter接口,并重寫了接口的show()方法,因此 匿名內部類{}整體可以看成Inter的一個實現類對象,既然是實現類對象,所以應該可以按照多態的形式 賦值給Inter接口。

08_匿名內部類在開發中的使用

1.5、匿名內部類在開發中的使用

多種動物,每次都要創建一個類,太麻煩了,∴ 采用 匿名內部類。

匿名內部類在開發中的使用:當發現某個方法需要 接口或抽象類的子類對象,可以傳遞一個匿名內部類過去,來簡化傳統的代碼。

09_Math

1.1、Math類概述

Math在java.lang包下,不用導包就可以直接使用。

Math沒有構造方法,但方法用static修飾,可以直接通過類名調用方法。

1.2、Math類的常用方法

10_System

2.1、System概述

System包含幾個有用的類字段和方法,它不能被實例化(不能創建對象)。

2.2、System類的常用方法

11_Object類的toString()方法

3.1、Object類的概述

Object類概述

  • Object是類層次結構的根,每個類都可以將Object 作為超類。沒有繼承任何類,Object是任何類的祖宗類。
  • 所有對象(包括數組)都實現了這個類的方法。

  • 所有類都直接或者間接的繼承自該類,換句話說,該類所具備的方法,所有類都會有一份。

Object構造方法

  • public Object()

查看方法源碼的方式

  • 雙擊選中方法,右鍵 -> Go To -> Declaration
  • 雙擊選中方法,按下Ctrl + B
  • 重寫toString方法的方式

  • Alt + Insert 選擇toString
  • 在類的空白區域,右鍵 -> Generate -> 選擇toString
  • toString方法的作用:

    • 以良好的格式,更方便的展示對象中的屬性值。

    回想面向對象中,為什么說子類的構造方法默認訪問的是父類的無參構造方法(? super();? )?

    • 因為它們的頂級父類(Object)只有無參構造方法。

    查看方法源碼的方式

  • 雙擊選中方法,右鍵 -> Go To -> Declaration
  • 雙擊選中方法,按下Ctrl + B
  • 建議所有子類覆蓋(重寫)此方法:toString()

    怎么重寫呢?自動生成即可。

    重寫toString方法的方式

  • Alt + Insert 選擇toString
  • 在類的空白區域,右鍵 -> Generate -> 選擇toString
  • 12_Object類的equals()方法

    3.2、Object類的常用方法

    equals方法的作用

    • 用于對象之間的比較,返回true和false的結果。
    • 舉例:s1.equals(s2); // s1和s2是兩個對象

    重寫equals方法的場景

    • 不希望比較對象的地址值,想要結合對象屬性進行比較的時候。

    重寫equals方法的方式

  • Alt + Insert 選擇 equals() and hashCode(),IntelliJ Default,一路next,finish即可
  • 在類的空白區域,右鍵 -> Generate -> 選擇equals() and hashCode(),后面的同上。
  • 重寫equals()方法

    按“Alt+Insert”:

    13_冒泡排序原理

    4.1、冒泡排序

    排序:將一組數據按照固定的規則進行排序。

    冒泡排序概述

    一種排序的方式,對要進行排序的數據中相鄰的數據進行兩兩比較,將較大的數據放在后面,

    依次對所有的數據進行操作,直至所有數據按要求完成排序。

    如果有n個數據進行排序,總共需要比較n-1次。

    每一次比較完畢,下一次的比較就會少一個數據參與。

    14_冒泡排序代碼實現

    package com.itheima_01;/*冒泡排序:一種排序的方式,對要進行排序的數據中相鄰的數據進行兩兩比較,將較大的數據放在后面,依次對所有的數據進行操作,直至所有數據按要求完成排序*/ public class ArrayDemo {public static void main(String[] args) {//定義一個數組int[] arr = {24, 69, 80, 57, 13};System.out.println("排序前:" + arrayToString(arr));//第一次比較for(int i=0; i<arr.length-1-0; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第一次比較后:" + arrayToString(arr));//第二次比較for(int i=0; i<arr.length-1-1; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第二次比較后:" + arrayToString(arr));//第三次比較for(int i=0; i<arr.length-1-2; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第三次比較后:" + arrayToString(arr));//第四次比較for(int i=0; i<arr.length-1-3; i++) {//ArrayIndexOutOfBoundsExceptionif(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}System.out.println("第四次比較后:" + arrayToString(arr));for(int x=0; x<arr.length-1; x++) {for(int i=0; i<arr.length-1-x; i++) {if(arr[i] > arr[i+1]) {int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}}System.out.println("排序后:" + arrayToString(arr));}//把數組中的元素按照指定的規則組成一個字符串:[元素1, 元素2, ...]public static String arrayToString(int[] arr) {StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i]).append(", ");}}sb.append("]");String s = sb.toString();return s;} }

    15_Arrays

    4.2、Arrays類的概述和常用方法

    private修飾的無參構造:外界無法通過構造方法創建對象。強制要求:通過類名來訪問成員方法。

    private Arrays {} :如果一個類沒有無參構造方法,系統將會自動提供一個無參構造方法。Arrays的方法,用static修飾,強制要求用類名訪問。

    在幫助文檔中,沒有看到構造方法,不代表這個類沒有構造方法,因為系統會給構造方法。--> 看源碼(構造方法)

    ?

    總結

    以上是生活随笔為你收集整理的Java12-day03【​​​​​​​(类名、抽象类名、接口名)作为形参和返回值、内部类、常用API(Math、System、toString()、Arrays)、冒泡】的全部內容,希望文章能夠幫你解決所遇到的問題。

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