最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

面向?qū)ο筮M(jìn)階的第三天

2023-02-27 16:11 作者:吳小敏63  | 我要投稿

內(nèi)部類(lèi)

內(nèi)部類(lèi)是什么?

  • 類(lèi)的5大成分(成員變量、成員方法、構(gòu)造器、代碼塊、內(nèi)部類(lèi))之一

  • 類(lèi)中的類(lèi)

使用場(chǎng)景

  • 當(dāng)一個(gè)事物的內(nèi)部,還有一個(gè)部分需要一個(gè)完整的結(jié)構(gòu)進(jìn)行描述時(shí)。

內(nèi)部類(lèi)有幾種

  • 1、靜態(tài)內(nèi)部類(lèi)

    • 是什么?有static修飾,屬于外部類(lèi)本身。

    • 特點(diǎn):只是位置在類(lèi)里面。類(lèi)有的成分它都有。

    • 創(chuàng)建對(duì)象:

      外部類(lèi).內(nèi)部類(lèi)名 ?對(duì)象名 ?= new 外部類(lèi)名.內(nèi)部類(lèi)構(gòu)造器;
    • 拓展

      1、靜態(tài)內(nèi)部類(lèi)可以直接訪問(wèn)外部類(lèi)的靜態(tài)成員嗎? 可以的

      2、靜態(tài)內(nèi)部類(lèi)中是否可以直接訪問(wèn)外部類(lèi)的實(shí)例成員? 不可以的

  • 2、成員內(nèi)部類(lèi)(實(shí)例內(nèi)部類(lèi))

    • 無(wú)static修飾,屬于外部類(lèi)的對(duì)象的。

    • 是什么?

    • 特點(diǎn):JDK 16中類(lèi)有的成分,它都有。

    • 創(chuàng)建對(duì)象 :

      外部類(lèi).內(nèi)部類(lèi) ?對(duì)象名 ? = ?new 外部類(lèi)構(gòu)造器.new ?內(nèi)部類(lèi)構(gòu)造器;
    • 拓展

      1、成員內(nèi)部類(lèi)中是否可以直接訪問(wèn)外部類(lèi)的靜態(tài)成員? 可以

      2、成員內(nèi)部類(lèi)的實(shí)例方法中是否可以直接訪問(wèn)外部類(lèi)的實(shí)例成員? 可以

  • 3、局部?jī)?nèi)部類(lèi)

    • 定義在方法,代碼塊,構(gòu)造器中,執(zhí)行代碼處的類(lèi)。雞肋語(yǔ)法!

  • 4、匿名內(nèi)部類(lèi)(重點(diǎn))

    • 使用匿名內(nèi)部類(lèi)的好處:

    • 格式:

      new ?類(lèi)名|接口|抽象類(lèi)(){ ? ? ?
      ? ?方法重寫(xiě); ? ? ?
      }
    • 特點(diǎn):

    1. 匿名內(nèi)部類(lèi)是一個(gè)沒(méi)有名字的局部?jī)?nèi)部類(lèi),本身也是一個(gè)所謂的子類(lèi)對(duì)象。

    2. 匿名內(nèi)部類(lèi)產(chǎn)生的對(duì)象類(lèi)型,相當(dāng)于是當(dāng)前new的那個(gè)的類(lèi)型的子類(lèi)類(lèi)型。

    1. 方便構(gòu)建子類(lèi)對(duì)象,最終目的:簡(jiǎn)化代碼

枚舉

是什么? 是一種特殊類(lèi)型。?枚舉的特征:

  1. 枚舉類(lèi)都是繼承了枚舉類(lèi)型:java.lang.Enum

  2. 枚舉都是最終類(lèi),不可以被繼承。

  3. 構(gòu)造器都是私有的,枚舉對(duì)外不能創(chuàng)建對(duì)象。

  4. 枚舉類(lèi)的第一行默認(rèn)都是羅列枚舉對(duì)象的名稱(chēng)的。

  5. 枚舉類(lèi)相當(dāng)于是多例模式。

泛型

認(rèn)識(shí)泛型

  • 定義類(lèi)、接口、方法時(shí),同時(shí)聲明了一個(gè)或者多個(gè)類(lèi)型變量(如:<E>) ,稱(chēng)為泛型類(lèi)、泛型接口,泛型方法、它們統(tǒng)稱(chēng)為泛型。

  • 作用

    • 泛型提供了在編譯階段約束所能操作的數(shù)據(jù)類(lèi)型,并自動(dòng)進(jìn)行檢查的能力!這樣可以避免強(qiáng)制類(lèi)型轉(zhuǎn)換,及其可能出現(xiàn)的異常。

泛型類(lèi)

  • 定義類(lèi)的同時(shí)定義了泛型的類(lèi)就是泛型類(lèi)

  • 泛型類(lèi)的格式

    修飾符 class 類(lèi)名<類(lèi)型變量,類(lèi)型變量,…> {
    }
  • 作用

    • 在編譯階段可以指定能操作的數(shù)據(jù)的類(lèi)型

  • 原理

    • 把出現(xiàn)泛型變量的地方全部替換成傳輸?shù)恼鎸?shí)數(shù)據(jù)類(lèi)型。

泛型接口

  • 使用了泛型定義的接口就是泛型接口

  • 格式

    修飾符 interface 接口名稱(chēng)<泛型變量> {
    }
  • 作用

    • 泛型接口可以讓實(shí)現(xiàn)類(lèi)選擇當(dāng)前功能需要操作的數(shù)據(jù)類(lèi)型

  • 原理

    • 實(shí)現(xiàn)類(lèi)可以在實(shí)現(xiàn)接口的時(shí)候傳入自己操作的數(shù)據(jù)類(lèi)型,這樣重寫(xiě)的方法都將是針對(duì)于該類(lèi)型的操作。

泛型方法

  • 定義方法時(shí)同時(shí)定義了泛型的方法就是泛型方法

  • 格式

    修飾符 <類(lèi)型變量,類(lèi)型變量,…> ?返回值類(lèi)型 方法名(形參列表) ?{
    }
  • 作用

    • 方法中可以使用泛型接收一切實(shí)際類(lèi)型的參數(shù),方法更具備通用性。

  • 原理

    • 把出現(xiàn)泛型變量的地方全部替換成傳輸?shù)恼鎸?shí)數(shù)據(jù)類(lèi)型。

泛型通配符、上下限

  • ? 可以在“使用泛型”的時(shí)候代表一切類(lèi)型。

  • E T K V 是在定義泛型的時(shí)候使用的。

  • 泛型的上下限

    • ? extends Car: ?必須是Car或者其子類(lèi) 泛型上限

    • ? super Car : ?必須是Car或者其父類(lèi) 泛型下限

泛型的注意事項(xiàng):擦除問(wèn)題、基本數(shù)據(jù)類(lèi)型問(wèn)題

  • 泛型是工作在編譯階段的,一旦程序編譯成class文件,class文件中就不存在泛型了,這就是泛型擦除。

  • 泛型不支持基本數(shù)據(jù)類(lèi)型,只能支持對(duì)象類(lèi)型(引用數(shù)據(jù)類(lèi)型)。

java.lang包下常用API

API概述

API全稱(chēng)是應(yīng)用程序編程接口,是Java寫(xiě)好的程序,程序員可以直接調(diào)用。

Object類(lèi):toString方法

Object是祖宗類(lèi),它里面的方法,一切子類(lèi)對(duì)象都可以使用。

public String toString()

  • 默認(rèn)是返回當(dāng)前對(duì)象的地址信息。

Student s = new Student("張三",'女', 23);

  • System.out.println(s.toString());

    • 返回對(duì)象地址

  • System.out.println(s);

    • 直接輸出對(duì)象名,默認(rèn)是調(diào)用toString方法的

toString存在的意義:

  • 默認(rèn)返回對(duì)象的地址其實(shí)是沒(méi)有意義的

  • 真實(shí)存在的意義是被子類(lèi)重寫(xiě),以便返回子類(lèi)對(duì)象的內(nèi)容。

Object類(lèi):equals方法

public boolean equals(Object o )

  • 默認(rèn)是比較2個(gè)對(duì)象的地址是否一樣,返回true 或者false

equals存在的意義

  • 默認(rèn)比較對(duì)象的地址其實(shí)是沒(méi)有意義的,因?yàn)?= 號(hào)可以更簡(jiǎn)單的完成

  • 存在的的真實(shí)意義是被子類(lèi)重寫(xiě),以便比較對(duì)象的內(nèi)容。

Object類(lèi):clone方法

protected Object clone()

當(dāng)某個(gè)對(duì)象調(diào)用這個(gè)方法時(shí),這個(gè)方法會(huì)復(fù)制一個(gè)一模一樣的新對(duì)象返回。

分類(lèi):

  1. 淺克?。嚎截惓龅男聦?duì)象,與原對(duì)象中的數(shù)據(jù)一模一樣(引用類(lèi)型拷貝的只是地址)

  2. 深克?。?/span>

    對(duì)象中基本類(lèi)型的數(shù)據(jù)直接拷貝。

    對(duì)象中的字符串?dāng)?shù)據(jù)拷貝的還是地址。

    對(duì)象中還包含的其他對(duì)象,不會(huì)拷貝地址,會(huì)創(chuàng)建新對(duì)象。

Objects

Objects是一個(gè)工具類(lèi),提供了更安全的方式比較2個(gè)對(duì)象。

Student s = null;

  • s.equals(s2); 空指針異常

  • Objects.equals(s, s2); 返回false

Objects常見(jiàn)方法:

方法名說(shuō)明public static boolean equals(Object a, Object b)比較兩個(gè)對(duì)象的,底層會(huì)先進(jìn)行非空判斷,從而可以避免空指針異常。再進(jìn)行equals比較public static boolean isNull(Object obj)判斷變量是否為null ,為null返回true ,反之返回false

包裝類(lèi)

其實(shí)就是8種基本數(shù)據(jù)類(lèi)型對(duì)應(yīng)的引用類(lèi)型。

作用:實(shí)現(xiàn)一切皆對(duì)象

包裝類(lèi)的分類(lèi):

基本數(shù)據(jù)類(lèi)型引用數(shù)據(jù)類(lèi)型byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean

包裝類(lèi)其實(shí)可以隨便用的:int integer

  • 自動(dòng)裝箱

    • 基本類(lèi)型的數(shù)據(jù)可以賦值其給包裝類(lèi)

  • 自動(dòng)拆箱

    • 包裝類(lèi)的數(shù)據(jù)賦值給基本數(shù)據(jù)類(lèi)型

包裝類(lèi)的特有功能:

1、基本類(lèi)型變成字符串

// 1、調(diào)用包裝類(lèi)繼承自O(shè)bject的toString方法String rs1 = it6.toString(); // "23"System.out.println(rs1 + 1); // 231// 2、調(diào)用靜態(tài)方法: public static String toString(int i)String rs2 = Integer.toString(it6);// "23"System.out.println(rs2 + 1);// 3、直接加 “”String rs3 = it6 + ""; // "23"System.out.println(rs3 + 1);

?

2、把字符串變成基本數(shù)據(jù)類(lèi)型(重點(diǎn)

String age = "23";// int ageInt = Integer.parseInt(age);int ageInt = Integer.valueOf(age); System.out.println(ageInt + 1); String price = "98.5";// double priceDb = Double.parseDouble(price);double priceDb = Double.valueOf(price); System.out.println(priceDb + 0.5);


面向?qū)ο筮M(jìn)階的第三天的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
延吉市| 长武县| 阳曲县| 西藏| 洱源县| 莱芜市| 浦北县| 开封市| 寿光市| 同江市| 延川县| 新民市| 清水河县| 尉氏县| 徐闻县| 建瓯市| 迁安市| 高要市| 灵武市| 常熟市| 镇宁| 开封县| 贵定县| 蓬安县| 丹寨县| 黔东| 教育| 历史| 凤山市| 阿克苏市| 内江市| 宁陵县| 灵石县| 闻喜县| 尼勒克县| 日照市| 仪征市| 邢台县| 田东县| 甘南县| 茌平县|