日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2024/9/30 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java12-day03【​​​​​​​(类名、抽象类名、接口名)作为形参和返回值、内部类、常用API(Math、System、toString()、Arrays)、冒泡】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 視頻+資料(工程源碼、筆記)【鏈接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg? ?提取碼:zjxs】
  • Java基礎(chǔ)--學(xué)習(xí)筆記(零起點(diǎn)打開(kāi)java世界的大門)--博客匯總表

目? ?錄

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

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

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

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

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

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

04_內(nèi)部類

1.1、內(nèi)部類概述

05_成員內(nèi)部類

1.2、成員內(nèi)部類

06_局部?jī)?nèi)部類

1.3、局部?jī)?nèi)部類

07_匿名內(nèi)部類

1.4、匿名內(nèi)部類

08_匿名內(nèi)部類在開(kāi)發(fā)中的使用

1.5、匿名內(nèi)部類在開(kāi)發(fā)中的使用

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_冒泡排序代碼實(shí)現(xiàn)

15_Arrays

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


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

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

1、類名作為方法的形參

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

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

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

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

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

  • 方法的形參是抽象類名,其實(shí)需要的是該抽象類的子類對(duì)象。
  • 方法的返回值是抽象類名,其實(shí)返回的是該抽象類的子類對(duì)象。

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

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

  • 方法的形參是接口名,其實(shí)需要的是該接口的實(shí)現(xiàn)類對(duì)象。
  • 方法的返回值是接口名,其實(shí)返回的是該接口的實(shí)現(xiàn)類對(duì)象。

04_內(nèi)部類

1.1、內(nèi)部類概述

05_成員內(nèi)部類

1.2、成員內(nèi)部類

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

  • 在類的成員位置:成員內(nèi)部類
  • 在類的局部位置:局部?jī)?nèi)部類

成員內(nèi)部類的定義位置

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

成員內(nèi)部類,外界如何創(chuàng)建對(duì)象使用呢?(外界創(chuàng)建成員內(nèi)部類格式)

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

成員內(nèi)部類的推薦使用方案

  • 將一個(gè)類,設(shè)計(jì)為內(nèi)部類的目的,大多數(shù)都是不想讓外界去訪問(wèn),所以內(nèi)部類的定義應(yīng)該私有化,私有化之后,再提供一個(gè)可以讓外界調(diào)用的方法,方法內(nèi)部創(chuàng)建內(nèi)部類對(duì)象并調(diào)用。

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

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

06_局部?jī)?nèi)部類

1.3、局部?jī)?nèi)部類

局部?jī)?nèi)部類 定義位置

  • 局部?jī)?nèi)部類是在方法中定義的類。

局部?jī)?nèi)部類 調(diào)用方式

  • 局部?jī)?nèi)部類是在方法中定義的類,外界無(wú)法直接使用,需要在方法內(nèi)部創(chuàng)建對(duì)象并使用。
  • 該類可以直接訪問(wèn)外部類的成員,也可以訪問(wèn)方法內(nèi)的局部變量。

07_匿名內(nèi)部類

1.4、匿名內(nèi)部類

重寫方法:繼承類或?qū)崿F(xiàn)接口。

new xxx:說(shuō)明是一個(gè)對(duì)象,但是對(duì)象沒(méi)有名字。

匿名內(nèi)部類,本質(zhì)是一個(gè)對(duì)象,繼承類或?qū)崿F(xiàn)接口。

多次調(diào)用匿名內(nèi)部類的方法:

匿名內(nèi)部類是一個(gè)對(duì)象,對(duì)象有返回值類型。此匿名內(nèi)部類實(shí)現(xiàn)了Inter接口,并重寫了接口的show()方法,因此 匿名內(nèi)部類{}整體可以看成Inter的一個(gè)實(shí)現(xiàn)類對(duì)象,既然是實(shí)現(xiàn)類對(duì)象,所以應(yīng)該可以按照多態(tài)的形式 賦值給Inter接口。

08_匿名內(nèi)部類在開(kāi)發(fā)中的使用

1.5、匿名內(nèi)部類在開(kāi)發(fā)中的使用

多種動(dòng)物,每次都要?jiǎng)?chuàng)建一個(gè)類,太麻煩了,∴ 采用 匿名內(nèi)部類。

匿名內(nèi)部類在開(kāi)發(fā)中的使用:當(dāng)發(fā)現(xiàn)某個(gè)方法需要 接口或抽象類的子類對(duì)象,可以傳遞一個(gè)匿名內(nèi)部類過(guò)去,來(lái)簡(jiǎn)化傳統(tǒng)的代碼。

09_Math

1.1、Math類概述

Math在java.lang包下,不用導(dǎo)包就可以直接使用。

Math沒(méi)有構(gòu)造方法,但方法用static修飾,可以直接通過(guò)類名調(diào)用方法。

1.2、Math類的常用方法

10_System

2.1、System概述

System包含幾個(gè)有用的類字段和方法,它不能被實(shí)例化(不能創(chuàng)建對(duì)象)。

2.2、System類的常用方法

11_Object類的toString()方法

3.1、Object類的概述

Object類概述

  • Object是類層次結(jié)構(gòu)的根,每個(gè)類都可以將Object 作為超類。沒(méi)有繼承任何類,Object是任何類的祖宗類。
  • 所有對(duì)象(包括數(shù)組)都實(shí)現(xiàn)了這個(gè)類的方法。

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

Object構(gòu)造方法

  • public Object()

查看方法源碼的方式

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

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

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

    回想面向?qū)ο笾?#xff0c;為什么說(shuō)子類的構(gòu)造方法默認(rèn)訪問(wèn)的是父類的無(wú)參構(gòu)造方法(? super();? )?

    • 因?yàn)樗鼈兊捻敿?jí)父類(Object)只有無(wú)參構(gòu)造方法。

    查看方法源碼的方式

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

    怎么重寫呢?自動(dòng)生成即可。

    重寫toString方法的方式

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

    3.2、Object類的常用方法

    equals方法的作用

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

    重寫equals方法的場(chǎng)景

    • 不希望比較對(duì)象的地址值,想要結(jié)合對(duì)象屬性進(jìn)行比較的時(shí)候。

    重寫equals方法的方式

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

    按“Alt+Insert”:

    13_冒泡排序原理

    4.1、冒泡排序

    排序:將一組數(shù)據(jù)按照固定的規(guī)則進(jìn)行排序。

    冒泡排序概述

    一種排序的方式,對(duì)要進(jìn)行排序的數(shù)據(jù)中相鄰的數(shù)據(jù)進(jìn)行兩兩比較,將較大的數(shù)據(jù)放在后面,

    依次對(duì)所有的數(shù)據(jù)進(jìn)行操作,直至所有數(shù)據(jù)按要求完成排序。

    如果有n個(gè)數(shù)據(jù)進(jìn)行排序,總共需要比較n-1次。

    每一次比較完畢,下一次的比較就會(huì)少一個(gè)數(shù)據(jù)參與。

    14_冒泡排序代碼實(shí)現(xiàn)

    package com.itheima_01;/*冒泡排序:一種排序的方式,對(duì)要進(jìn)行排序的數(shù)據(jù)中相鄰的數(shù)據(jù)進(jìn)行兩兩比較,將較大的數(shù)據(jù)放在后面,依次對(duì)所有的數(shù)據(jù)進(jìn)行操作,直至所有數(shù)據(jù)按要求完成排序*/ public class ArrayDemo {public static void main(String[] args) {//定義一個(gè)數(shù)組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));}//把數(shù)組中的元素按照指定的規(guī)則組成一個(gè)字符串:[元素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修飾的無(wú)參構(gòu)造:外界無(wú)法通過(guò)構(gòu)造方法創(chuàng)建對(duì)象。強(qiáng)制要求:通過(guò)類名來(lái)訪問(wèn)成員方法。

    private Arrays {} :如果一個(gè)類沒(méi)有無(wú)參構(gòu)造方法,系統(tǒng)將會(huì)自動(dòng)提供一個(gè)無(wú)參構(gòu)造方法。Arrays的方法,用static修飾,強(qiáng)制要求用類名訪問(wèn)。

    在幫助文檔中,沒(méi)有看到構(gòu)造方法,不代表這個(gè)類沒(méi)有構(gòu)造方法,因?yàn)橄到y(tǒng)會(huì)給構(gòu)造方法。--> 看源碼(構(gòu)造方法)

    ?

    總結(jié)

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

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。