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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第10天 面向对象

發(fā)布時(shí)間:2025/4/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第10天 面向对象 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第10天 面向?qū)ο?/h1>

今日任務(wù)

1、接口的思想(接口的第二個(gè)作用)(掌握)

2、抽象類和接口的區(qū)別(了解)

3、多態(tài)技術(shù)(掌握)

4、Object類概述(掌握)

課堂筆記

1、接口的思想(接口的第二個(gè)作用)

?

接口的第一個(gè)作用:給事物體系增加額外功能(擴(kuò)展功能)。

接口的第二個(gè)作用:給事物雙方定義規(guī)則。一方使用規(guī)則,另一方實(shí)現(xiàn)規(guī)則。

?

?

說明:筆記本就是在使用這個(gè)規(guī)則,外圍設(shè)備(鼠標(biāo)、鍵盤等)在實(shí)現(xiàn)這個(gè)規(guī)則。

?

2、抽象類和接口的區(qū)別

?

接口和抽象類都是描述事物的共性行為,并且描述的行為一般都是抽象的。需要子類或?qū)崿F(xiàn)類對(duì)這些行為進(jìn)行實(shí)現(xiàn)或復(fù)寫。

接口和抽象類的區(qū)別:

1、接口中只能定義抽象方法;抽象類中除了具有抽象方法外,還可以定義其它方法;

2、接口可以多實(shí)現(xiàn);而抽象類只能單一繼承;

3、接口用來描述事物擴(kuò)展功能(額外功能);抽象類用來描述事物的共性內(nèi)容(描述不清楚);

4、接口中沒有構(gòu)造函數(shù);抽象類中具有構(gòu)造函數(shù);

?

抽象類和接口的區(qū)別代碼體現(xiàn)如下:

//定義接口

interface Inter

{

????void show();

????//接口中只能有抽象方法

????/*void test()

????{

????????System.out.println("test");

????????

????}*/

}

interface InterA

{

????void show();

}

//定義一個(gè)類來實(shí)現(xiàn)接口

class InterfaceImpl implements Inter,InterA//接口可以多實(shí)現(xiàn)

{

????public void show()

????{

????????System.out.println("接口show");

????}

}

//定義一個(gè)抽象類

abstract class Abs

{

????//抽象類中除了定義抽象方法還可以定義其他方法

????void demo()

????{

????????System.out.println("demo");

????}

????//抽象類中可以有構(gòu)造函數(shù),接口中沒有

????Abs()

????{

????????System.out.println("抽象類中的構(gòu)造函數(shù)");

????}

}

class AbstractDemo extends Abs

{

}

class AbstractAndInter

{

????public static void main(String[] args)

????{

????????InterfaceImpl ip=new InterfaceImpl();

????????ip.show();

????????AbstractDemo abs=new AbstractDemo();

????}

}

?

3、多態(tài)技術(shù):

3.1、多態(tài)介紹

面向?qū)ο笳Z言三大特征:封裝、繼承和多態(tài)。

多態(tài):表示的是一個(gè)事物的多種表現(xiàn)形態(tài)。同一個(gè)事物,以不同的形態(tài)表現(xiàn)出來。

?

多態(tài)來源于生活,在生活中我們經(jīng)常會(huì)對(duì)某一類事物使用它的共性統(tǒng)稱來表示某個(gè)具體的事物,這時(shí)這個(gè)具體的事物就以其他的形式展示出來。

蘋果:說蘋果,說水果。

狗:說狗,說動(dòng)物。

貓:說貓,說動(dòng)物。

?

?

3.2、多態(tài)技術(shù)在Java中的體現(xiàn)

在Java中的多態(tài)代碼體現(xiàn):

使用父類的引用,表示自己的子類對(duì)象。

Cat c = new Cat(); 使用貓類型表示自己,這里不會(huì)發(fā)生多態(tài)現(xiàn)象

Animal a = new Cat(); 使用動(dòng)物的類型再表示貓,這時(shí)就發(fā)生的多態(tài)的現(xiàn)象。

?

在Java中要使用多態(tài)技術(shù):

前提:必須要有繼承/實(shí)現(xiàn);

好處:可以通過父類統(tǒng)一管理子類;

多態(tài)技術(shù)在java中的代碼體現(xiàn):

  • 定義一個(gè)動(dòng)物類Animal,在這個(gè)類中定義一個(gè)eat函數(shù),由于每種動(dòng)物吃的東西不一樣,所以eat函數(shù)體不確定,這里我們可以將eat函數(shù)變成抽象函數(shù),Animal類也會(huì)變成抽象類;
  • 在分別定義Dog和Cat兩個(gè)類,在這兩個(gè)類中都復(fù)寫Animal類中的eat函數(shù),并在兩個(gè)不同類中的eat函數(shù)體中輸出不同動(dòng)物吃不同東西的語句;
  • 定義一個(gè)測試多態(tài)的類,在這個(gè)類中分別創(chuàng)建貓和狗的對(duì)象分別調(diào)用對(duì)應(yīng)的函數(shù),如果Animal父類中有多個(gè)函數(shù),那么我們使用貓和狗的對(duì)象調(diào)用多個(gè)函數(shù)時(shí)會(huì)出現(xiàn)代碼的復(fù)用性差的問題,所以我們定義一個(gè)函數(shù)將重復(fù)的代碼寫到函數(shù)中,這樣就可以提高了代碼的復(fù)用性差的問題;
  • 在主函數(shù)中調(diào)用自定義函數(shù),并將貓和狗的對(duì)象作為參數(shù)傳遞給自定義函數(shù),而自定義函數(shù)接收的參數(shù)類型是父類的Animal類型,這里就使用了多態(tài)的現(xiàn)象;

    ?

    //演示多態(tài)技術(shù)

    abstract class Animal

    {

    ????abstract void eat();

    ????void show()

    ????{

    ????????System.out.println("show run .....");

    ????}

    ????void show2()

    ????{

    ????????System.out.println("show2 run .....");

    ????}

    }

    class Cat extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("貓吃魚");

    ????}

    }

    class Dog extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("狗啃骨頭");

    ????}

    }

    ?

    class DuoTaiDemo

    {

    ????public static void main(String[] args)

    ????{

    ????????Cat c = new Cat();

    ????????demo(c);

    ????????Dog d = new Dog();

    ????????demo(d);

    ????}

    ????/*

    ????????在調(diào)用方法的時(shí)候發(fā)生了多態(tài)的現(xiàn)象

    ????????Animal a = new Cat(); 這里發(fā)生了多態(tài)

    ????????Animal a = new Dog(); 這里也是多態(tài)

    Dog a=new Animal();子類引用是不可以指向父類對(duì)象的

    ????????我們在使用多態(tài)的時(shí)候,永遠(yuǎn)只能使用父類的類型接受子類的對(duì)象,而不能使用

    ????????子類的類型接受父類的對(duì)象。

    ????*/

    ????public static void demo( Animal a )

    ????{

    ????????a.eat();

    ????????a.show();

    ????????a.show2();

    ????}

    }

    ?

    注意:我們在使用多態(tài)的時(shí)候,永遠(yuǎn)只能使用父類的類型接受子類的對(duì)象,而不能使用子類的類型接受父類的對(duì)象。

    ?

    3.3多態(tài)的弊端

    ?

    //演示多態(tài)弊端

    ?

    abstract class Animal

    {

    ????abstract void eat();

    }

    class Cat extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("貓吃魚");

    ????}

    ????//貓有自己的特有行為 抓老鼠

    ????void catchMouse()

    ????{

    ????????System.out.println("貓抓老鼠");

    ????}

    }

    class Dog extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("狗啃骨頭");

    ????}

    ????//狗也有自己的行為 看家

    ????void lookHome()

    ????{

    ????????System.out.println("狗看家");

    ????}

    }

    class DuoTaiDemo2

    {

    ????public static void main(String[] args)

    ????{

    ????????Cat c = new Cat();

    ????????c.eat();

    ????????c.catchMouse();

    ?

    ?

    ????????Dog d = new Dog();

    ????????d.eat();

    ????????d.lookHome();

    ?

    ????????//使用多態(tài)調(diào)用方法

    ????????Animal a = new Dog();

    ????????a.eat();

    ????????a.lookHome();

    ????}

    }

    ?

    ?

    多態(tài)的弊端:

    把一個(gè)子類類型提升成了父類的類型,那么在程序編譯的過程中,編譯不會(huì)考慮具體是哪個(gè)子類類型,而只會(huì)根據(jù)當(dāng)前的父類類型去操作,通過父類的引用在調(diào)用方法的時(shí)候,只會(huì)去父類類型所屬的類中找有沒有這些成員,

    如果有編譯通過,如果沒有編譯失敗。

    ?

    多態(tài)弊端總結(jié):

    在使用多態(tài)技術(shù)的時(shí)候,程序在編譯的時(shí)候,使用多態(tài)調(diào)用成員(變量和函數(shù)),要求被調(diào)用的成員在父類中一定要存在,如果父類中沒有編譯就會(huì)失敗。(不能使用子類特有功能或者屬性)

    ?

    注意:只要有多態(tài)的地方,一定發(fā)生類型的提升(肯定是把子類對(duì)象使用父類類型在表示)。

    ?

    3.4、多態(tài)中的轉(zhuǎn)型

    在使用多態(tài)時(shí),存在一個(gè)弊端:不能使用子類中特有的功能(函數(shù))。

    如果在多態(tài)中,必須要使用子類特有的功能,需要在多態(tài)操作時(shí)進(jìn)行類型的轉(zhuǎn)換。

    復(fù)習(xí)下之前學(xué)習(xí)過的類型轉(zhuǎn)換:

    自動(dòng)類型提升 例: byte b=10; int num=b;

    強(qiáng)制類型轉(zhuǎn)換 例: double d=3.14; int n=(int)d;

    ?

    Animal an = new Dog();

    Animal是父類類型(父引用類型) an是父引用 new Dog()是子類對(duì)象

    在以上代碼中,已存在了類型的轉(zhuǎn)換(向上轉(zhuǎn)型):父類 父引用=new子類();

    ?

    如果一定要在父類引用中使用子類對(duì)象特有的功能,就需要向下轉(zhuǎn)型(大類型向下轉(zhuǎn)換):

    說明:子類對(duì)象中特定的功能只能子類對(duì)象自己調(diào)用。

    ?

    如果已經(jīng)發(fā)生多態(tài)現(xiàn)象,但是我們還想調(diào)用子類的特有屬性或者行為,這時(shí)需要使用強(qiáng)制類型轉(zhuǎn)換,把當(dāng)前父類類型轉(zhuǎn)成具體的子類類型。

    ?

    多態(tài)中的類型轉(zhuǎn)換有兩種:

    1)向上轉(zhuǎn)型(隱式的類型提升) 父引用指向子類對(duì)象 例:Animal an = new Dog();

    2)向下轉(zhuǎn)型(強(qiáng)制類型轉(zhuǎn)換或者把父類類型轉(zhuǎn)成子類類型) 把父引用強(qiáng)制轉(zhuǎn)為子類引用 例:Dog d=(Dog) an;

    強(qiáng)制類型轉(zhuǎn)換格式:子類類型 子類引用名=(子類類型)父類引用名;

    ?

    ?

    多態(tài)類型轉(zhuǎn)換的代碼體現(xiàn):

    abstract class Animal

    {

    ????abstract void eat();

    }

    class Cat extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("貓吃魚");

    ????}

    ????//貓有自己的特有行為 抓老鼠

    ????void catchMouse()

    ????{

    ????????System.out.println("貓抓老鼠");

    ????}

    }

    ?

    class Dog extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("狗啃骨頭");

    ????}

    ????//狗也有自己的行為 看家

    ????void lookHome()

    ????{

    ????????System.out.println("狗看家");

    ????}

    }

    class DuoTaiDemo3

    {

    ????public static void main(String[] args)

    ????{

    ????????Cat c = new Cat();

    ????????c.eat();

    ????????c.catchMouse();

    ?

    ????????Dog d = new Dog();

    ????????d.eat();

    ????????d.lookHome();

    ?

    ????????//使用多態(tài)調(diào)用方法

    ????????Animal a = new Dog();

    ????????a.eat();

    ????????/*

    ????????????如果已經(jīng)發(fā)生多態(tài)現(xiàn)象,但是我們還想調(diào)用子類的特有屬性或者行為,這時(shí)需要使用

    ????????????強(qiáng)制類型轉(zhuǎn)換,把當(dāng)前父類類型轉(zhuǎn)成具體的子類類型。

    ?

    ????????????在多態(tài)中的類型轉(zhuǎn)換問題:

    ????????????????1、隱式的類型提升。只要有多態(tài)就會(huì)發(fā)生類型提升(向上轉(zhuǎn)型)。

    ????????????????2、把父類類型轉(zhuǎn)成子類類型(強(qiáng)制類型轉(zhuǎn)換,向下轉(zhuǎn)型)。

    ?

    ????????????什么時(shí)候使用向下轉(zhuǎn)型:

    ????????????只要在程序中我們需要使用子類的特有屬性或行為(方法、函數(shù))的時(shí)候,才會(huì)使用向下轉(zhuǎn)型。

    ????????*/

    ?

    ????????//(Dog)(a).lookHome();

    ????????Dog dd = (Dog)a; //多態(tài)的轉(zhuǎn)型

    ????????dd.lookHome();

    ?

    注意:

    1)什么時(shí)候使用向下轉(zhuǎn)型:

    ????只要在程序中我們需要使用子類的特有屬性或行為(方法、函數(shù))的時(shí)候,才會(huì)使用向下轉(zhuǎn)型。

  • 無論是向上還是向下轉(zhuǎn)型,最終都是子類對(duì)象做著類型的變化。和父類對(duì)象沒有關(guān)系。
  • 為什么要使用轉(zhuǎn)型

    ?

    3.5多態(tài)類型轉(zhuǎn)換時(shí)常見異常

    在多態(tài)類型轉(zhuǎn)換時(shí)經(jīng)常會(huì)發(fā)生一個(gè)異常錯(cuò)誤:ClassCastException(類型轉(zhuǎn)換異常)。

    ?

    多態(tài)類型轉(zhuǎn)換常見異常代碼演示:

    abstract class Animal

    {

    ????abstract void eat();

    }

    class Cat extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("貓吃魚");

    ????}

    ????//貓有自己的特有行為 抓老鼠

    ????void catchMouse()

    ????{

    ????????System.out.println("貓抓老鼠");

    ????}

    }

    ?

    class Dog extends Animal

    {

    ????void eat()

    ????{

    ????????System.out.println("狗啃骨頭");

    ????}

    ????//狗也有自己的行為 看家

    ????void lookHome()

    ????{

    ????????System.out.println("狗看家");

    ????}

    }

    class DuoTaiDemo3

    {

    ????public static void main(String[] args)

    ????{

    ????????Animal a= new Cat();

    ????????demo(a);//傳遞的是貓的對(duì)象

    ????}

    ????public static void demo( Animal a )

    ????{

    ????????a.eat();

    //把Animal類型的a轉(zhuǎn)成 Dog類的d

    Dog d=(Dog)a;//將傳遞過來的貓的對(duì)象強(qiáng)制轉(zhuǎn)換為狗是不可以的,會(huì)發(fā)生轉(zhuǎn)換異常

    ????????/*

    ????????????向下轉(zhuǎn)型有風(fēng)險(xiǎn),使用需謹(jǐn)慎。

    ????????????在Java中要使用向下轉(zhuǎn)型,必須先做類型的判斷,然后在轉(zhuǎn)型

    ????????????Java中的類型判斷 需要使用關(guān)鍵字 instanceof

    ????????????格式:

    ????????????????被轉(zhuǎn)的引用變量名 instanceof 被轉(zhuǎn)成的類型

    ????????????????如果引用變量所在的那個(gè)對(duì)象 和被轉(zhuǎn)成的類型一致,這個(gè)表達(dá)式返回的是true,否則是false

    ?

    ????????????在多態(tài)中使用轉(zhuǎn)型的時(shí)候,一定要判斷,防止類型轉(zhuǎn)換異常的發(fā)生:

    ????????????????如果在程序發(fā)生ClassCastException,一定是把不是這種類型的對(duì)象轉(zhuǎn)成了這種類型。

    ????????*/

    ????????if( a instanceof Dog )

    ????????{

    ????????????Dog d = (Dog)a;

    ????????????d.lookHome();

    ????????}

    ????????else if( a instanceof Cat )

    ????????{

    ????????????Cat c = (Cat)a;

    ????????????c.catchMouse();

    ????????}????

    ????}

    }

    ?

    ?

    向下轉(zhuǎn)型有風(fēng)險(xiǎn),使用需謹(jǐn)慎。在Java中要使用向下轉(zhuǎn)型,必須先做類型的判斷,然后在轉(zhuǎn)型Java中的類型判斷 需要使用關(guān)鍵字 instanceof。

    ????????????格式:

    ????????????????被轉(zhuǎn)的引用變量名 instanceof 被轉(zhuǎn)成的類型

    如果引用變量所在的那個(gè)對(duì)象 和被轉(zhuǎn)成的類型一致,這個(gè)表達(dá)式返回的是true,否則是false。

    在多態(tài)中使用轉(zhuǎn)型的時(shí)候,一定要判斷,防止類型轉(zhuǎn)換異常的發(fā)生:

    如果在程序發(fā)生ClassCastException,一定是把不是這種類型的對(duì)象轉(zhuǎn)成了這種類型。

    ?

    總結(jié):

    只要有多態(tài),就會(huì)有類型的轉(zhuǎn)換。

    把子類對(duì)象賦值給父類的引用,這時(shí)發(fā)生了向上的轉(zhuǎn)型(隱式類型轉(zhuǎn)換)。

    如果我們需要使用子類的特有行為或?qū)傩?#xff0c;這時(shí)必須向下轉(zhuǎn)型,需要把父類的引用轉(zhuǎn)成具體所指的那個(gè)對(duì)象的類型。

    在向下轉(zhuǎn)型的時(shí)候一定要做類型的判斷,防止ClassCastException異常的發(fā)生。

    ?

    判斷格式:

    if( 父類引用變量名 instanceOf 子類對(duì)象所屬的類名 )

    {

    進(jìn)行轉(zhuǎn)換。

    }

    3.6、多態(tài)中調(diào)用成員的細(xì)節(jié)(掌握)

    學(xué)習(xí)多態(tài)中的成員使用規(guī)律:需要掌握的是以多態(tài)形式使用成員,需要考慮程序的編譯和運(yùn)行2個(gè)階段。

    3.6.1多態(tài)調(diào)用成員變量

    在使用多態(tài)時(shí),子父類中存在相同的成員變量:

    ?

    結(jié)論:

    在多態(tài)中,使用父類的引用(f)訪問成員變量,子父類中存在一模一樣的成員變量時(shí):

    1)代碼在編譯的時(shí)期(javac 源文件):需要查看父類中有沒有這個(gè)成員變量,如果有,編譯通過,沒有編譯失敗。

    2)編譯通過的前提下,運(yùn)行(java 類文件)時(shí)期:這時(shí)操作的依然是父類中的成員變量。

    記住:多態(tài)時(shí),子父類中存在一模一樣的成員變量時(shí),引用變量,編譯運(yùn)行都看引用類(父類)中的變量。(編譯時(shí)以等號(hào)左邊作為參考,運(yùn)行時(shí)也是以等號(hào)左邊作為參考)

    注意:如果發(fā)生多態(tài)時(shí),只要是在其他類中使用成員變量,那么這個(gè)成員變量必須存在于父類中,無論子類中是否含有對(duì)應(yīng)的成員變量,如果父類中沒有成員變量,那么編譯和運(yùn)行都不會(huì)通過,和子類中是否含有成員變量沒有關(guān)系。

    ?

    3.6.2多態(tài)調(diào)用非靜態(tài)成員函數(shù)

    在多態(tài)中,使用父類引用調(diào)用成員函數(shù)的時(shí)候,一般函數(shù)都復(fù)寫存在。

    在使用多態(tài)時(shí),子父類中存在一模一樣的成員方法時(shí):

    ?

    結(jié)論:

    在多態(tài)中,使用父類的引用(f)調(diào)用函數(shù)的時(shí)候,子父類中存在一模一樣的成員方法時(shí):

    1)代碼在編譯的時(shí)期(javac 源文件):要看父類中有沒有這個(gè)函數(shù),有,編譯通過,沒有編譯失敗。

    2)編譯通過的前提下,運(yùn)行(java 類文件)時(shí)期:運(yùn)行的是子類中復(fù)寫父類之后的那個(gè)函數(shù)。如果沒有復(fù)寫,運(yùn)行的肯定還是父類的函數(shù)。

    記住:多態(tài)時(shí),子父類中存在一模一樣的成員方法時(shí),編譯時(shí)以等號(hào)左邊作為參考,運(yùn)行時(shí)是以等號(hào)右邊作為參考。

    3.6.3多態(tài)調(diào)用靜態(tài)成員函數(shù)

    在使用多態(tài)時(shí),子父類中存在一模一樣的靜態(tài)方法時(shí):

    ?

    靜態(tài)的成員是隨著類的加載而存在,和創(chuàng)建的對(duì)象沒有任何關(guān)系,只跟類有關(guān)系。在java中,使用對(duì)象去調(diào)用靜態(tài)成員,底層JVM還是會(huì)以對(duì)象所屬的類型(類)去調(diào)用靜態(tài)成員。因此使用多態(tài)調(diào)用靜態(tài)函數(shù)的時(shí)候,編譯運(yùn)行都要看父類中的函數(shù)。

    ?

    結(jié)論:

    在使用多態(tài)時(shí),子父類中存在一模一樣的靜態(tài)方法時(shí):

    編譯時(shí)期是以等號(hào)左邊作為參考,運(yùn)行時(shí)期也是以等號(hào)左邊作為參考。

    也就是說,在使用多態(tài)時(shí),子父類中存在一模一樣的靜態(tài)方法時(shí),與子類是否存在靜態(tài)函數(shù)沒有關(guān)系,只和父類中有關(guān)系。

    ?

    總結(jié)多態(tài)中成員使用規(guī)律:

    成員變量和靜態(tài)成員函數(shù),編譯運(yùn)行都看左邊(父類中的)。只有非靜態(tài)成員函數(shù),編譯看父類,運(yùn)行看子類對(duì)象。

    3.7、多態(tài)的練習(xí)

    練習(xí)的目的:需要掌握多態(tài)中,自始至終只有子類對(duì)象存在,沒有父類的對(duì)象,并且把子類對(duì)象交給父類的引用在使用。

    ?

    練習(xí)黑旋風(fēng)和黑旋風(fēng)老爸的故事。

    黑旋風(fēng):

    講課(){}

    看電影(){}

    黑旋風(fēng)老爸:

    講課(){}

    釣魚(){}

    ?

    //多態(tài)練習(xí)

    class Dad

    {

    ????void teach()

    ????{

    ????????System.out.println("黑旋風(fēng)老爸講論語");

    ????}

    ????void fish()

    ????{

    ????????System.out.println("黑旋風(fēng)老爸釣魚");

    ????}

    }

    class Hxf extends Dad

    {

    ????void teach()

    ????{

    ????????System.out.println("黑旋風(fēng)講Java");

    ????}

    ????void lookFilm()

    ????{

    ????????System.out.println("黑旋風(fēng)在看速7");

    ????}

    }

    ?

    class DuoTaiTest

    {

    ????public static void main(String[] args)

    ????{

    ????????/*

    ????????Hxf hxf = new Hxf ();

    ????????hxf .teach();

    ????????hxf .fish();

    ????????*/

    ????????Dad dad = new Hxf (); //多態(tài)

    ????????dad .teach();

    ???? dad .fish();

    //dad.lookFilm();//編譯報(bào)錯(cuò),因?yàn)楦割愔袥]有l(wèi)ookFilm這個(gè)函數(shù)

    ???? /*

    ????????????現(xiàn)在我就想調(diào)用子類中特有的函數(shù),怎么辦?

    ????????????我們這里需要使用強(qiáng)制類型轉(zhuǎn)換,將父類轉(zhuǎn)換為子類

    ????????*/

    ????????Hxf hxf = (Hxf)dad; //黑旋風(fēng)卸妝 向下轉(zhuǎn)型

    ????????hxf .lookFilm();

    ????}

    }

    ?

    ?

    4、Object類概述

    在學(xué)習(xí)面向?qū)ο缶幊趟枷?#xff0c;遇到需求時(shí),先去找有沒有解決問題的功能存在。這些解決問題的功能通常是封裝在類中(功能類),使用這些功能類基本可以解決開發(fā)中大部分的問題(例:折半查找、選擇排序等)。

    問題:這些解決問題的功能類都在哪里?

    在java設(shè)計(jì)時(shí),已經(jīng)提供了很多解決問題的封裝類。這些解決問題的封裝類,我們統(tǒng)稱為:API

    在開發(fā)中,只要去相應(yīng)的包(文件夾)中去找對(duì)應(yīng)的封裝類就可以解決問題。

    API:application programming interface。應(yīng)用程序接口。我們這里通常把a(bǔ)pi簡稱為幫助文檔。

    想要使用java提供的解決各種問題的API,就需要先學(xué)會(huì)如何查閱API文檔。

    4.1 查閱API文檔的技巧

    使用"索引"查找相應(yīng)的信息

    如下圖操作,點(diǎn)擊選項(xiàng),選擇顯示標(biāo)簽

    ?

    點(diǎn)擊完顯示標(biāo)簽后,會(huì)出現(xiàn)如下圖所示界面:

    ?

    然后點(diǎn)擊索引,會(huì)出現(xiàn)如下圖所示的界面:

    在查找框里輸入要查找的類或者接口即可。

    ?

    在搜索框里輸入要查找的類,選中并雙擊或者回車。

    ?

    4.2 如何查閱源代碼

    在開發(fā)中,除了查閱API以外,還經(jīng)常會(huì)查看JDK的源代碼,幫助解決開發(fā)中的問題。

    在安裝JDK時(shí),隨著JDK版本的安裝,在JDK安裝目錄也存在一個(gè)當(dāng)前版本的JDK源碼文件

    ?

    查看源代碼的步驟:(前提:需要知道要查找的功能類屬于哪個(gè)包

  • 新建一個(gè)文件夾,并把src.zip文件解壓到創(chuàng)建的文件夾中

    ?

  • 找到要查閱源代碼的功能類或接口

    ?

  • 使用記事本之類的工具,打開要查看的源代碼文件

    ?

    4.3 Object類說明

    在所有類中的構(gòu)造函數(shù)中有個(gè)隱式的super語句,找父類。如果一個(gè)類沒有顯示指定它的父類,那么這個(gè)類的父類默認(rèn)就是Object類。Object類的構(gòu)造函數(shù)中是沒有隱式的super的。

    通過API的查閱,可以得到:

    1、Object是java提供的功能類(API中的類)和開發(fā)人員自己書寫的類的父類;

    2、因?yàn)樗械念惗祭^承了Object類,所以繼承了Object類的子類可以使用Ojbect類中的功能(函數(shù));

    疑問:既然自己定義的類也要繼承Object類,那為什么在代碼中沒有顯式書寫繼承Object?

    Object類屬于java.lang包下。而java.lang包會(huì)被JVM在運(yùn)行時(shí)自動(dòng)加載,繼承了Object的子類也不需要顯式書寫,JVM會(huì)自動(dòng)為書寫的類添加繼承。

    Object類中的常用函數(shù):

    equals 方法 toString 方法

    4.4、equals方法介紹

    需求:判斷學(xué)生是否為同齡人

  • 定義一個(gè)學(xué)生Student類,在Student類中定義name和age屬性,并定義構(gòu)造函數(shù)給name和age初始化值;
  • 在Student類中定義一個(gè)比較是否是同齡的函數(shù),如果相同就返回true,不相同就返回false;
  • 定義一個(gè)測試類,在這個(gè)類中分別創(chuàng)建兩個(gè)對(duì)象,然后使用一個(gè)對(duì)象調(diào)用類中的比較是否同齡的函數(shù),根據(jù)函數(shù)返回的true或者false判斷是否同齡;

    ?

    /*

    ????判斷兩個(gè)學(xué)生是否是同齡人

    */

    //定義一個(gè)學(xué)生類

    class Student

    {

    ????//屬性

    ????String name;

    ????int age;

    ????//定義構(gòu)造函數(shù)給屬性初始化值

    ????Student(String name,int age)

    ????{

    ????????this.name=name;

    ????????this.age=age;

    ????}

    ????/*

    ????????定義一個(gè)函數(shù)根據(jù)外界傳遞過來的值比較年齡是否相等,

    ????????使用return關(guān)鍵字將比較的結(jié)果返回給調(diào)用者

    ????????Student a=new Student("技導(dǎo)",18)

    ????????因?yàn)閏ompareAge函數(shù)是s對(duì)象調(diào)用的,所以在這個(gè)函數(shù)中的隱式變量this

    ????????記錄著s對(duì)象的堆內(nèi)存地址名

    ????*/

    ????public boolean compareAge(Student a)

    ????{

    ????????/*

    ????????????this.age表示黑旋風(fēng)的年齡17

    ????????????a.age表示技導(dǎo)的年齡18

    ????????*/

    ????????return this.age==a.age;

    ????}

    }

    class ObjectDemo1

    {

    ????public static void main(String[] args)

    ????{

    ????????/*

    ????????????創(chuàng)建兩個(gè)對(duì)象

    ????????????下面的兩個(gè)對(duì)象表示在對(duì)空間中開辟兩個(gè)不同的空間

    ????????????一個(gè)空間叫做s,另一個(gè)空間叫做s1

    ????????*/

    ????????Student s=new Student("黑旋風(fēng)",17);

    ????????Student s1=new Student("技導(dǎo)",17);

    ????????//使用黑旋風(fēng)的對(duì)象s調(diào)用compareAge函數(shù)

    ????????//使用flag來接受返回回來的值

    ????????boolean flag=s.compareAge(s1);

    ????????/*

    ????????????如果返回回來的值是true,說明是同齡人

    ????????????如果返回回來的值是false,說明不是同齡人

    ????????*/

    ????????if(flag==true)

    ????????{

    ????????????System.out.println("是同齡人");

    ????????}else

    ????????{

    ????????????System.out.println("不是同齡人");

    ????????}

    ????}

    }

    ?

    使用以上方式可以解決問題。

    ?

    面向?qū)ο?#xff1a;遇到需求時(shí),先去找有沒有存在已經(jīng)解決問題的功能(功能是封裝在類中)。

    有,就直接使用封裝了功能的功能類解決問題。

    ?

    以上需求中,是需要解決判斷是否為同齡人的功能。(其實(shí)就是一個(gè)判斷是否相等的功能)

    首先,去找java API中是否有比較功能。

    問題:Student類中不具備比較功能,但是,Student類繼承了Object類,所以可以去Object類中找是否存在解決問題的功能

    ?

    Object類中的功能:

    ?

    使用Object類中的eqauls函數(shù)解決需求中的問題:

    ?

    以上程序運(yùn)行結(jié)果不正確。

    分析:為什么使用Object類中的equals功能會(huì)存在結(jié)果不正確呢?

    查看Object類中的equals功能的源代碼

    上述代碼中的Object類中的this 表示的是調(diào)用這個(gè)equals函數(shù)的那個(gè)對(duì)象,obj是調(diào)用equals方法時(shí)傳遞進(jìn)來的那個(gè)對(duì)象,而this中保存的是對(duì)象的內(nèi)存地址,obj中接受的也是傳遞進(jìn)來的那個(gè)對(duì)象內(nèi)存地址。所以這里使用== ,其實(shí)是在比較2個(gè)對(duì)象的內(nèi)存地址是否相等。(就是堆內(nèi)存中的地址)

    ?

    結(jié)論:Object類中的equals方法中,比較的是堆中的地址是否相等

    ?

    而我們真正在開發(fā)中要比較2個(gè)對(duì)象是否相等,不應(yīng)該去比較內(nèi)存地址,而應(yīng)該比較的是對(duì)象中的數(shù)據(jù)是否相同。單單使用Object類中的equals功能,并不能直接解決我們需求中的問題。遇到這種情況,在開發(fā)中的做法是:重寫Object類中的equals函數(shù),因此所有的程序中都應(yīng)該復(fù)寫Object類中的equals。

    ?

    ?

    /*

    ????判斷兩個(gè)學(xué)生是否是同齡人

    */

    //定義一個(gè)學(xué)生類

    class Student

    {

    ????//屬性

    ????String name;

    ????int age;

    ????//定義構(gòu)造函數(shù)給屬性初始化值

    ????Student(String name,int age)

    ????{

    ????????this.name=name;

    ????????this.age=age;

    ????}

    ????//重寫Object類中的equals函數(shù)(重寫:和父類中的方法一模一樣)

    ????public boolean equals(Object obj) {

    ????????/*

    ????????????因?yàn)檫@里發(fā)生了多態(tài),所以不能使用父類的對(duì)象obj調(diào)用父類中不存在的屬性age,

    ????????????所以會(huì)報(bào)錯(cuò)。所以我們應(yīng)該使用子類Student對(duì)象來調(diào)用子類中的屬性age

    ????????????而這里obj是父類對(duì)象,我們需要使用向下轉(zhuǎn)型將父類對(duì)象obj轉(zhuǎn)換為子類對(duì)象

    ????????????因?yàn)榘l(fā)生向下類型轉(zhuǎn)換,為了防止發(fā)生轉(zhuǎn)換異常,所以我們要判斷子類對(duì)象類型

    ????????*/

    ????????Student s=null;

    ????????if(obj instanceof Student)

    ????????{

    ????????????s=(Student)obj;

    ????????}

    return this.age==s.age;

    }

    }

    class ObjectDemo2

    {

    ????public static void main(String[] args)

    ????{

    ????????/*

    ????????????創(chuàng)建兩個(gè)對(duì)象

    ????????????下面的兩個(gè)對(duì)象表示在對(duì)空間中開辟兩個(gè)不同的空間

    ????????????一個(gè)空間叫做s,另一個(gè)空間叫做s1

    ????????*/

    ????????Student s=new Student("黑旋風(fēng)",17);

    ????????Student s1=new Student("技導(dǎo)",17);

    ????????//使用黑旋風(fēng)的對(duì)象s調(diào)用compareAge函數(shù)

    ????????//使用flag來接受返回回來的值

    ????????//boolean flag=s.compareAge(s1);

    ????????/*

    ????????????public boolean equals(Object obj) {

    ????????????????這里的this記錄著調(diào)用這個(gè)方法的對(duì)象s的堆中內(nèi)存地址名

    ????????????????obj表示傳遞進(jìn)來的參數(shù)對(duì)象s1,Object obj=new Student("技導(dǎo)",17);這里發(fā)生多態(tài)

    ????????????????obj里面存放的也是s1中的堆中內(nèi)存地址

    ????????????????s和s1的堆中內(nèi)存地址名不同

    ???????????????? return (this == obj);

    ????????????}

    ????????????public boolean compareAge(Student a)

    ????????????{

    ???????? ?

    ????????????????return this.age==a.age;

    ????????????}

    ????????*/

    ????????boolean flag=s.equals(s1);

    ????????System.out.println(flag);

    ???????? ?

    ????????/*

    ????????????如果返回回來的值是true,說明是同齡人

    ????????????如果返回回來的值是false,說明不是同齡人

    ????????*/

    ????????if(flag==true)

    ????????{

    ????????????System.out.println("是同齡人");

    ????????}else

    ????????{

    ????????????System.out.println("不是同齡人");

    ????????}

    ????}

    }

    ?

    ?

    ?

    總結(jié):

    關(guān)系運(yùn)算中的==和equals的區(qū)別:

  • equals函數(shù)是用來比較2個(gè)對(duì)象是否相等的。要比較對(duì)象是否相等,必須調(diào)用函數(shù)(equals)來比較。但是必須得復(fù)寫equals函數(shù)。
  • 而學(xué)習(xí)的關(guān)系運(yùn)算中的 == 只能比較2個(gè)具體的數(shù)據(jù)是否相等。

    4.5、toString方法介紹

    需求:輸出Student類的具體信息,也就是根據(jù)輸出Student類的對(duì)象來輸出Student的具體名字和姓名。

  • 定義一個(gè)Student類,在這個(gè)類中定義兩個(gè)name和age屬性;
  • 在Student類中定義一個(gè)構(gòu)造函數(shù),給name和age兩個(gè)屬性賦值;
  • 定義一個(gè)測試類,在這個(gè)測試類中創(chuàng)建Student類的對(duì)象并初始化值;
  • 在屏幕上打印Student類的對(duì)象;

    以上程序的運(yùn)行結(jié)果,不符合需求。要求是想要輸出學(xué)生類中的具體信息,比如通過打印對(duì)象的名字stu,我們希望打印出具體的stu對(duì)象所擁有的名字和年齡,而打印一串地址名在開發(fā)中沒有什么太大意義。

    ?

    問題:為什么輸出stu時(shí),顯示的結(jié)果:Student@7ea06d25?為什么輸出的是一個(gè)引用地址而不是我們想要的對(duì)象的屬性的值呢?我們應(yīng)該怎么做才能打印出屬性的值而不是打印一串地址的值呢?

    這里我們需要借助Object類中的toString方法來解決,toString是一個(gè)方法,它需要對(duì)象來調(diào)用,toString的意思是將調(diào)用它的對(duì)象轉(zhuǎn)換成字符串形式。

    我們在打印對(duì)象的時(shí)候也可以按照如下方法去做:

    System.out.println(stu.toString());打印的結(jié)果和我們寫System.out.println(stu);是一樣的。

    在上述打印語句中println()的方法中打印對(duì)象stu的時(shí)候,如果不加 .toString()方法,在println()的方法中默認(rèn)也是使用對(duì)象stu調(diào)用toString()方法,所以在開發(fā)中寫與不寫toString()方法是一樣的。

    ?

    ?

    ?

    根據(jù)以上分析我們想要建立自定義對(duì)象的表現(xiàn)形式,我們需要覆蓋超類(所有類的父類)中的toString()方法就可以了。

    在Student類中可以重寫toString方法,讓程序輸出學(xué)生類的具體信息,代碼實(shí)現(xiàn)如下:

    ?

    小結(jié):

    在開發(fā)中,如果子類繼承父類時(shí),父類中已經(jīng)存在了解決問題的功能,但是父類中的功能并不能滿足子類的需求,這時(shí),子類就需要重寫(覆蓋)父類中的方法。

  • 轉(zhuǎn)載于:https://www.cnblogs.com/beyondcj/p/5860863.html

    總結(jié)

    以上是生活随笔為你收集整理的第10天 面向对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    天天天操天天天干 | 天天做综合网 | 国产精品久久片 | 毛片1000部免费看 | 99精品视频网 | 日韩视频二区 | 久久久亚洲影院 | 日韩免费在线观看视频 | 天天鲁天天干天天射 | 亚洲精品在线观看视频 | 欧美午夜久久久 | 中文字幕乱码在线播放 | 免费高清在线观看成人 | 91免费网址 | 视频在线播放国产 | 亚洲国产成人高清精品 | 久久久 精品| 国产专区精品 | 麻豆播放 | av中文字幕第一页 | 亚洲精品国偷自产在线99热 | 天天射射天天 | 在线欧美中文字幕 | 日韩美女黄色片 | 在线国产专区 | 奇米网8888 | 国产亚洲免费的视频看 | 亚色视频在线观看 | 在线观看成人一级片 | 在线国产黄色 | 中文字幕乱码日本亚洲一区二区 | 男女激情麻豆 | 亚洲综合色视频在线观看 | 天天人人综合 | 欧美日韩国产页 | 国产福利91精品张津瑜 | 成人中文字幕在线 | 欧洲成人免费 | 日本韩国中文字幕 | 欧美在线不卡一区 | 午夜在线免费观看视频 | 中文字幕一区二区在线观看 | 激情五月***国产精品 | 久 久久影院 | 444av| 色wwwww| 久久永久视频 | 中文在线字幕免 | 日韩在线免费不卡 | 欧美91精品久久久久国产性生爱 | 国产五月婷 | 97香蕉久久国产在线观看 | 婷婷网在线 | 日韩欧美在线综合网 | 免费高清在线观看成人 | 91日韩精品视频 | 7799av | 伊人五月在线 | 97在线观看免费观看 | 麻豆精品视频在线观看免费 | 在线观看免费版高清版 | av电影在线免费观看 | 在线成人一区 | 六月丁香婷 | 丁香婷婷综合网 | 亚洲精品理论片 | 成年人在线电影 | 久久好看免费视频 | 成年人看片网站 | 精品一二三区视频 | 成人免费观看在线视频 | 玖玖玖影院 | 久久久国产视频 | 国产玖玖视频 | 九九热精品视频在线观看 | 特级西西人体444是什么意思 | 国产精品视频永久免费播放 | 日韩三级中文字幕 | 久久久久久久久久久久av | 97超碰人人在线 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 四虎国产永久在线精品 | 国产xxxx性hd极品 | 天天狠狠| 精品毛片在线 | 美女视频黄的免费的 | 亚洲国产中文字幕在线观看 | 亚洲视频在线视频 | 中文字幕黄色 | 人人插人人玩 | 精品久久国产一区 | 中文字幕电影在线 | 911免费视频 | 国产亚洲亚洲 | av黄色免费在线观看 | 亚洲精品字幕 | 日韩av在线一区二区 | 婷婷久久一区 | 免费日韩在线 | 成人在线视频一区 | 美女视频黄是免费的 | 欧美日韩国产色综合一二三四 | 久久精品激情 | 国产91丝袜在线播放动漫 | 日韩av区| 久久免费观看少妇a级毛片 久久久久成人免费 | 精品国产1区 | 欧美最猛性xxxxx亚洲精品 | 一区二区成人国产精品 | 黄色a视频免费 | 免费黄av | 日韩国产高清在线 | 久久视频在线观看免费 | 日韩专区在线 | 色吊丝在线永久观看最新版本 | 久久久网站 | aaa免费毛片 | 美女精品久久 | 人人玩人人爽 | 久久视奸| 九九久久久 | 久久免费视频5 | 热久久国产| 欧美一级片免费在线观看 | 欧美成人精品在线 | 久久99在线视频 | 精品伦理一区二区三区 | 视频一区二区国产 | 免费在线播放视频 | 久久久午夜剧场 | 国产国语在线 | 日韩av伦理片 | 成人国产精品免费观看 | 韩国av一区二区三区在线观看 | 精品在线观看国产 | 亚洲涩涩一区 | wwwwwww色| 久久福利在线 | 人人澡人人模 | 在线视频日韩欧美 | 国产精品女人久久久 | 成人午夜剧场在线观看 | 亚洲欧洲xxxx | 免费视频久久久久久久 | 日韩高清免费无专码区 | 黄色成年网站 | 国产手机在线视频 | 最近中文字幕视频完整版 | 国产成人av一区二区三区在线观看 | 五月婷婷久 | av网站在线观看免费 | 就色干综合 | 欧美99热 | 久热这里有精品 | 日韩高清毛片 | 亚洲精品av中文字幕在线在线 | 久久草在线精品 | 激情综合交 | 国产91精品欧美 | 日本大片免费观看在线 | 福利电影一区二区 | 天干啦夜天干天干在线线 | 91一区二区三区久久久久国产乱 | 一级黄色网址 | 久久精品日产第一区二区三区乱码 | 一区二区视频欧美 | 中文字幕888 | 五月天婷亚洲天综合网鲁鲁鲁 | 免费看三级网站 | 欧美精品亚洲精品 | 成人在线观看av | 中文字幕视频网 | 美女一级毛片视频 | 久热超碰 | 在线一二区 | 国产精品区在线观看 | 综合五月 | 成人黄色在线电影 | 狠狠狠干狠狠 | 天天爽网站 | 天天操天天添天天吹 | 久久电影国产免费久久电影 | 日韩高清免费在线 | 国产一区视频在线观看免费 | 麻豆精品视频在线观看免费 | 精品一区二区免费在线观看 | 丁香花五月 | 五月婷婷综合激情 | 久久呀| 久久久精品午夜 | 五月婷婷丁香激情 | 亚洲国产精品一区二区尤物区 | 国产精品一区二区av | 午夜精品电影一区二区在线 | 亚洲午夜久久久久久久久 | 国产中文字幕视频在线观看 | 香蕉影视| 亚洲精品免费在线视频 | www91在线观看 | 欧美精品亚洲精品 | 久久色中文字幕 | 精品一区电影国产 | 亚洲欧美偷拍另类 | 日韩成人高清在线 | 免费观看一级一片 | 亚洲精品在线视频播放 | 毛片1000部免费看 | 成人av中文字幕在线观看 | 国产精品精品视频 | 欧美黄色高清 | 激情黄色av | 最新日韩在线观看 | 成人 亚洲 欧美 | 一区二区三区免费在线观看视频 | 96久久欧美麻豆网站 | 美女久久网站 | 色香网 | 亚洲国产成人精品在线 | 久久久久久蜜av免费网站 | 色狠狠一区二区 | 亚洲一级片免费观看 | 国产在线播放一区二区三区 | avwww在线 | www日韩欧美| japanesefreesex中国少妇 | 黄网站色成年免费观看 | 97视频在线观看网址 | www.狠狠色.com | 激情五月***国产精品 | 成年人免费观看在线视频 | 中文字幕在线精品 | 成人免费视频a | 国产精品久久久av久久久 | 国产一区二区午夜 | 色综合久久综合网 | 综合网伊人 | 日本电影黄色 | 美女在线免费视频 | 欧美精品色 | 美女网站视频免费都是黄 | 久久精久久精 | 在线精品视频在线观看高清 | 成年人av在线播放 | 亚洲一区二区三区毛片 | 91精品国自产在线 | 精品国产乱码久久久久久浪潮 | 成人中文字幕+乱码+中文字幕 | 日韩av中文在线观看 | 丁香婷婷激情国产高清秒播 | 一级一片免费看 | 成人羞羞视频在线观看免费 | 丁香激情五月婷婷 | 国产va在线 | 91亚洲国产成人久久精品网站 | 国产美女在线免费观看 | 国产剧情一区二区在线观看 | 国产亚洲精品中文字幕 | 丁香花中文字幕 | 色综合天天在线 | 久久免费a | 午夜视频在线观看欧美 | 国产一区免费在线 | 视频成人 | 99久久精品一区二区成人 | 国产一级淫片在线观看 | 久草热视频 | 一区二区三区三区在线 | 在线va视频 | 西西www4444大胆在线 | 欧美日韩久久不卡 | 中文字幕在线观看免费高清电影 | 免费男女羞羞的视频网站中文字幕 | 91av视频在线播放 | 久久大香线蕉app | 亚a在线| 玖玖玖精品 | 欧美日韩在线精品 | 激情婷婷 | 国产福利一区二区三区在线观看 | 在线播放精品一区二区三区 | 天天操天天操天天操天天操 | 中文视频在线看 | 福利电影一区二区 | 永久免费av在线播放 | 国产精品久久久久久久久久久久午夜 | 51久久夜色精品国产麻豆 | 久久久综合九色合综国产精品 | 国产日韩精品视频 | 日本特黄一级 | 天天av资源 | 中文字幕亚洲不卡 | 亚洲午夜精品久久久久久久久久久久 | 麻豆播放 | 久久人人爽视频 | 亚洲欧美偷拍另类 | 国产区免费在线 | 激情开心色 | 亚洲成人资源网 | 久操视频在线观看 | 黄色的网站免费看 | 国产精品一区在线观看你懂的 | 日韩电影一区二区在线观看 | 久久天堂网站 | 在线不卡a | 日韩一三区 | 欧美视频在线二区 | 国产小视频福利在线 | 国产va饥渴难耐女保洁员在线观看 | 国产精品成人自产拍在线观看 | 91网站在线视频 | 色伊人网 | 亚洲国产成人av网 | 日韩在线小视频 | 狠狠操影视 | 亚洲极色 | 天天操天天操天天干 | 亚洲精品www久久久久久 | 色99色| 日韩在线中文字幕视频 | 黄色av一区二区三区 | 色小说av | 亚洲精品在线观看av | 久久天天综合网 | 欧美日韩午夜 | 91香蕉国产 | 伊人五月 | 国产最顶级的黄色片在线免费观看 | 国产一级片视频 | 亚洲精品视频观看 | 欧美另类高清 | 亚洲男男gaygay无套同网址 | 99这里有精品 | 激情视频区 | 欧美久久综合 | 天天色天天骑天天射 | 欧美激情视频一二三区 | 天天射网 | 精品久久九九 | 国产精品女 | 久久99精品一区二区三区三区 | 九九九热精品免费视频观看 | 91成人免费 | 午夜10000| 久草| 久久国产影院 | 国产一区在线精品 | 免费在线观看中文字幕 | 国产亚洲综合在线 | 亚洲电影第一页av | 亚洲黄色大片 | 91原创在线观看 | 91天堂素人约啪 | se婷婷 | 久久国内精品 | 99热九九这里只有精品10 | 国产一区在线免费观看 | 国产91精品高清一区二区三区 | 久久综合9988久久爱 | 亚欧日韩av| av大全在线免费观看 | 国产91精品看黄网站 | 国产精品综合久久久 | 亚洲视频在线免费看 | 成人免费观看视频网站 | 久久爱992xxoo| 成人国产精品久久久久久亚洲 | av中文字幕剧情 | 国产精品99久久久久久人免费 | 天天干天天干天天操 | 国产 欧美 日产久久 | 日韩av视屏 | 97电影在线观看 | 黄色av一区 | 精品亚洲午夜久久久久91 | 四虎免费在线观看视频 | 999久久久久久 | 久久久精品国产免费观看同学 | 欧美在线观看禁18 | 在线观看国产一区二区 | 免费成人黄色 | 91九色视频在线 | 91免费高清视频 | 色婷婷亚洲综合 | 亚洲另类人人澡 | 国产打女人屁股调教97 | 国产精品欧美一区二区 | 99在线热播精品免费 | 日韩性xxxx| 911精品美国片911久久久 | 91视频免费 | 久久久久久久国产精品 | 免费欧美 | 婷婷丁香七月 | 国产精品69久久久久 | 久久视屏网| 中文字幕视频在线播放 | 一二区精品 | 九九热在线视频免费观看 | 久草视频在线资源站 | 91亚洲精品久久久 | 亚洲免费av网站 | 在线观看黄色国产 | 婷婷色综合色 | 天天操操操操操操 | 色视频国产直接看 | 日韩在线中文字幕 | 久久字幕精品一区 | 草免费视频 | 一级一片免费视频 | 91丨九色丨蝌蚪丰满 | 色综合色综合久久综合频道88 | 91夜夜夜 | 欧美精品乱码99久久影院 | 91视频在线自拍 | 国产一区二区三区高清播放 | 国产精品9区 | 久久国产精品一二三区 | 国产1区2区 | 91麻豆视频 | 欧美在线a视频 | 99精品国产一区二区三区不卡 | www.色综合.com | 欧美一区日韩精品 | 中文区中文字幕免费看 | 亚洲午夜久久久久久久久电影网 | 二区三区在线 | 午夜免费视频网站 | 97视频中文字幕 | 在线黄网站 | 久久国产麻豆 | 97热久久免费频精品99 | 欧美另类巨大 | 久久99精品久久只有精品 | av电影在线不卡 | 欧美日韩不卡在线观看 | 欧美一区二区三区在线看 | 国产精品久久久久久久久久久久午 | 伊人色**天天综合婷婷 | 久久久精品视频成人 | 免费久久久久久 | 99精品国产亚洲 | 欧美性生活免费 | 久久人人爽人人人人片 | 蜜桃av综合网 | 久操操| 九九久久国产精品 | 日韩免费中文字幕 | 久久精品高清 | 国产精品男女啪啪 | 欧美极品少妇xbxb性爽爽视频 | 91麻豆精品国产91久久久久 | 中文字幕在线不卡国产视频 | 久草在线观看资源 | 日韩一区二区免费播放 | 亚洲手机av | 午夜精品一区二区三区视频免费看 | 久久最新网址 | 欧美精品在线一区二区 | 天天操天天吃 | av片无限看 | 成人小视频在线观看免费 | 黄色三级在线 | 婷婷 综合 色 | 日本公妇在线观看 | 91视频久久久 | 337p日本欧洲亚洲大胆裸体艺术 | 日本中文在线播放 | 一级黄色在线视频 | 日韩久久午夜一级啪啪 | 亚洲亚洲精品在线观看 | 五月婷婷六月丁香激情 | 国产精品va在线播放 | 欧美在线不卡一区 | 国产视频2区 | 黄色91在线| 中文字幕中文中文字幕 | 一区 二区 精品 | 久久久久久久影视 | 欧美日韩国产综合一区二区 | 欧美最新另类人妖 | 在线观看久 | 久久国产高清 | 日本不卡123 | 国产一区二区精品久久91 | 国产精品第一页在线观看 | 婷婷六月丁| 国产精品s色 | 亚洲电影一级黄 | 国产美女久久 | 一区二区久久久久 | 9在线观看免费 | 亚洲国产中文字幕在线视频综合 | 国产不卡在线看 | 免费av网站在线看 | 国产精品久久久久久久久久久久午夜 | 色视频 在线 | 婷婷视频在线播放 | 天天爱综合 | 福利一区二区三区四区 | 在线观看久草 | 亚洲精品视频在线免费播放 | 免费在线观看一区二区三区 | 九九久久成人 | 精品国产综合区久久久久久 | 国产成人专区 | 欧美一级大片在线观看 | 特级毛片在线 | 久久不卡国产精品一区二区 | 999亚洲国产996395 | 婷婷在线视频 | 成人av高清 | 日日爱网址 | 国产中文字幕久久 | 日韩中文字幕国产精品 | 99久久99久久精品国产片 | 亚洲精品乱码久久 | 亚洲国产中文字幕在线观看 | 激情欧美一区二区三区免费看 | 精品成人国产 | 又色又爽又激情的59视频 | 日韩精品在线免费播放 | 99久高清在线观看视频99精品热在线观看视频 | 中文字幕免费观看全部电影 | 韩国av在线播放 | 欧美精品在线一区二区 | 中文国产成人精品久久一 | 综合网五月天 | 日韩午夜在线观看 | 欧美激情xxxx性bbbb | 免费色婷婷 | 美女黄视频免费看 | 成人免费观看视频网站 | 狠狠色香婷婷久久亚洲精品 | 久久久久久久久久网 | 婷婷色五 | 亚洲 精品在线视频 | 日韩专区一区二区 | 精品欧美日韩 | 国产成人99av超碰超爽 | 蜜臀精品久久久久久蜜臀 | 欧美9999| 人人射av | 欧美激情精品一区 | 人人爱爱人人 | 国产精品久久久久久久久久久久久 | 97视频在线观看成人 | 国产99久久久国产精品成人免费 | 在线亚洲精品 | 在线观看亚洲视频 | 国产无遮挡又黄又爽馒头漫画 | 亚洲精品456在线播放第一页 | 国产在线第三页 | 亚洲一区二区黄色 | 国产精品一区二区免费看 | 综合激情网... | 成年人黄色免费网站 | 国产精品自拍在线 | 欧美专区日韩专区 | 人人爽人人澡 | 国产视频日韩视频欧美视频 | 在线播放第一页 | 日韩高清精品免费观看 | 国产精品视频免费 | 激情伊人| 国产视频不卡一区 | 97在线影视 | 欧美男女爱爱视频 | 香蕉视频在线视频 | 一区二区三区在线看 | av三级av | 国产精品免费大片视频 | 深爱激情婷婷网 | 区一区二区三区中文字幕 | 亚洲精品国产精品国产 | 在线观看国产中文字幕 | 国产成人在线观看免费 | av片一区二区 | 欧美日韩久 | 亚洲精品国产精品久久99热 | 99视频偷窥在线精品国自产拍 | 日韩一区二区三区在线观看 | 国产香蕉视频在线观看 | 久久久噜噜噜久久久 | 丝袜美女在线 | 久久久久免费精品国产 | 国产精品情侣视频 | 岛国av在线免费 | 欧美一进一出抽搐大尺度视频 | 六月婷婷色 | 免费看黄视频 | 在线观看视频你懂 | av亚洲产国偷v产偷v自拍小说 | 国产一区二区三区免费视频 | 日韩在线视频网 | 一区二区三区观看 | 久草精品视频在线看网站免费 | 精品国产视频在线观看 | 毛片区 | 免费aa大片 | 国产精品毛片一区二区在线看 | 欧美aⅴ在线观看 | 成人日韩av | 97超级碰碰碰视频在线观看 | 天天操天天综合网 | 丁香五婷| 久久国产综合视频 | 超级碰碰碰视频 | 91综合色| 国产成人区 | 视频一区二区三区视频 | 人人爽人人澡人人添人人人人 | 亚洲第一伊人 | 中文字幕亚洲综合久久五月天色无吗'' | www.com.黄 | 午夜丁香网 | 色视频网页 | 天天曰天天干 | a午夜电影 | 天堂v中文 | 欧美日韩高清免费 | 国产精品免费视频网站 | 国产精品日韩在线 | 精品国产一区二区三区久久久久久 | 96av视频 | 天天干夜夜擦 | 四虎成人精品永久免费av | 麻豆 videos| 91成年人视频 | av在线免费播放网站 | 超碰午夜 | 韩国中文三级 | 一区二区三区四区五区在线视频 | 青草视频免费观看 | 91精品黄色 | 婷婷深爱 | 中文字幕色网站 | 国产精品久免费的黄网站 | 色吊丝在线永久观看最新版本 | av在线日韩 | 免费av视屏| 伊人五月 | 久草在线视频网站 | 国产乱对白刺激视频在线观看女王 | 中文资源在线观看 | 日韩激情片在线观看 | 成人亚洲精品久久久久 | 97色婷婷成人综合在线观看 | 久久久久综合 | 日本性xxxxx 亚洲精品午夜久久久 | 久久69精品久久久久久久电影好 | 国产 一区二区三区 在线 | 中文字幕永久免费 | 在线观看小视频 | 亚洲网站在线看 | 中文字幕在线一区二区三区 | 成人香蕉视频 | 国产成人61精品免费看片 | www·22com天天操| 欧美精品久久久久久久久免 | 黄色网址av | 日本中文字幕免费观看 | 久久香蕉国产精品麻豆粉嫩av | 国产一区国产精品 | 亚洲日韩精品欧美一区二区 | 美女露久久 | 超碰97公开 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 亚洲美女视频在线观看 | 久久天天躁 | 波多野结衣视频一区二区三区 | 免费a视频在线 | 欧美在线视频一区二区 | 久草99 | 久久精久久精 | 亚洲精品久久久久久久不卡四虎 | 成人在线视频论坛 | 18网站在线观看 | 91福利区一区二区三区 | 美女视频永久黄网站免费观看国产 | 午夜精品久久久久久久99水蜜桃 | 久久天天拍 | 18国产精品白浆在线观看免费 | 日韩av中文字幕在线 | 五月婷综合网 | 日韩一区二区免费播放 | 日日射av | 欧美国产视频在线 | av午夜电影 | 亚洲精品在线免费看 | 色a4yy| 少妇超碰在线 | 成片免费 | 美女黄频在线观看 | 精品亚洲男同gayvideo网站 | av在线最新| 91麻豆国产福利在线观看 | 精品美女国产在线 | 国产精品美女 | 日韩中文字幕亚洲一区二区va在线 | 国产日韩欧美视频在线观看 | 亚洲欧美国产精品18p | 国产视频资源在线观看 | 日本午夜在线亚洲.国产 | 日本99干网 | 夜夜爱av | 国产黄色片免费在线观看 | 免费麻豆视频 | 国产成人精品一二三区 | 久久精品一二三 | 久久天天躁狠狠躁夜夜不卡公司 | 久久久久一区二区三区四区 | 亚洲欧美在线综合 | 四虎影院在线观看av | 国内免费久久久久久久久久久 | 日韩在线影视 | 亚洲视频免费在线 | 国产黄色美女 | 中国成人一区 | 少妇搡bbb | 国产国语在线 | 韩国精品一区二区三区六区色诱 | 手机在线视频福利 | 久久99九九99精品 | 在线观看一区二区精品 | 天堂视频一区 | 一区二区不卡在线观看 | 天天爽人人爽夜夜爽 | 成年人黄色在线观看 | 97色婷婷人人爽人人 | 国产真实精品久久二三区 | 成人a毛片 | 97电影院在线观看 | 伊人成人激情 | 欧美男男激情videos | av丝袜天堂| 国产精品一区久久久久 | 亚洲精品99久久久久久 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品久久久久久五月尺 | 91桃色在线免费观看 | 国产护士av| av网站在线观看免费 | 播五月综合 | 国产成人综合在线观看 | 免费日韩电影 | 日韩网站中文字幕 | 97在线免费观看视频 | 91看片淫黄大片一级在线观看 | 一区二区三区四区五区在线视频 | 欧美另类巨大 | 91女人18片女毛片60分钟 | 在线观看国产中文字幕 | 天天天天爽 | 丁香六月中文字幕 | 国内精品在线看 | 一区二区三区国产精品 | 国产精品不卡在线 | 亚洲国产精品女人久久久 | 久久理论影院 | 福利区在线观看 | 91成人免费看 | 综合天堂av久久久久久久 | jizzjizzjizz亚洲| 中文字幕久久亚洲 | 黄色aaaaa| 在线观看mv的中文字幕网站 | 人人爱爱人人 | 久久国产一二区 | 日韩剧 | 欧美性生活久久 | 精品极品在线 | 久久电影国产免费久久电影 | 亚洲精品国产精品国自产观看 | 免费观看十分钟 | 五月婷婷影院 | 免费看三片 | 国产午夜三级一区二区三 | 中文字幕在线观看第三页 | 婷婷在线看 | 久久久av免费 | www久久| 国产亚洲欧美日韩高清 | 免费精品在线 | 婷婷六月色 | a色网站| 日韩国产精品久久 | 亚州精品国产 | 首页中文字幕 | 四虎成人免费观看 | 91九色蝌蚪视频在线 | 毛片在线播放网址 | 五月天六月丁香 | av免费网站 | 婷婷国产在线观看 | 最近免费中文视频 | 少妇性aaaaaaaaa视频 | 国产精品九九九 | 国内精品一区二区 | 国产精品国产亚洲精品看不卡15 | 四虎影视成人精品国库在线观看 | 97在线观看免费高清完整版在线观看 | 成人啪啪18免费游戏链接 | 超碰在线人 | 亚洲国产中文字幕在线视频综合 | 欧美少妇18p | 在线观看免费视频你懂的 | 99色在线视频 | 国产码电影 | 狠狠色伊人亚洲综合成人 | 亚洲视频免费在线观看 | 色99导航| 国产综合精品一区二区三区 | 国内精品久久久久 | 亚洲视频大全 | 波多野结衣视频一区二区 | 天天干亚洲 | 超碰97国产精品人人cao | 日韩二区精品 | 97碰碰碰 | 日本激情动作片免费看 | 精品久久久久久久久亚洲 | 亚洲免费公开视频 | 国产精品在线看 | 久久区二区 | 国产手机视频在线播放 | 久草久草在线观看 | 久久艹在线 | 精品欧美一区二区在线观看 | 国产一区二区不卡视频 | 国产又粗又硬又长又爽的视频 | 国产精品原创av片国产免费 | 日韩av午夜 | 中文字幕精品一区二区三区电影 | 国产一区免费观看 | 91在线看片 | 97电院网手机版 | 亚洲精品国产成人 | 激情五月婷婷综合网 | 中文字幕一区二区三区在线视频 | 国产精品久久久久999 | 天天射天天射天天 | 在线观看免费黄色 | 国产一级精品绿帽视频 | 日本在线视频网址 | 日韩aⅴ视频 | 成片免费| 久久手机精品视频 | 久久成人精品电影 | 中文国产字幕 | 热99久久精品 | 黄色av一区二区 | 欧美a级免费视频 | 中文在线字幕观看电影 | 国产在线视频一区 | 精品国模一区二区 | 最新久久久 | 色99之美女主播在线视频 | 91网站在线视频 | 人成在线免费视频 | 日日操日日 | 国产高清不卡av | 成人一区二区在线 | 久久久久久久福利 | 午夜国产在线观看 | 欧美在线视频第一页 | 国产精品一区二区在线播放 | 国产成人精品av在线 | 日韩精品免费在线 | 美女黄久久 | 天天色影院 | 91在线视频免费91 | 国产资源网站 | 精品国产乱码久久久久久浪潮 | 国产精品免费在线观看视频 | 欧美有色 | 人人干在线观看 | 国产一级一级国产 | 日产乱码一二三区别在线 | 黄色毛片观看 | 国产中的精品av小宝探花 | 久久久精品网站 | 黄色av一区二区 | 三级黄色大片在线观看 | 丁香九月婷婷综合 | 黄在线免费观看 | 日日夜夜精品免费 | 日韩在线播放视频 | 在线视频 91| 日本中文字幕电影在线免费观看 | 高清在线一区二区 | 亚洲激情在线视频 | 国产福利a | 成人影片在线免费观看 | 欧美国产亚洲精品久久久8v | 久久天堂影院 | 99久久精品久久亚洲精品 | 免费看黄色小说的网站 | 国产精品白浆 | 久久久黄色av | 国产黄色一级片 | 亚洲 欧美变态 另类 综合 | www.狠狠操.com | 精品中文字幕在线播放 | 成人av在线网址 | 首页中文字幕 | 国内丰满少妇猛烈精品播放 | 亚洲最新av在线网站 | 五月综合色 | 国产精品破处视频 | 91久久久国产精品 | 色网免费观看 | 深爱激情婷婷网 | 91精品视频在线看 | 日本少妇视频 | 最近中文字幕mv免费高清在线 | 日本在线观看中文字幕 | 久久综合色一综合色88 | 在线免费观看国产精品 | 免费看三片 | 久久综合狠狠综合久久综合88 | 91在线免费观看网站 | 欧美另类z0zx| 成人三级网站在线观看 | 欧美一级视频在线观看 | 成人免费观看完整版电影 | 91精品在线观看视频 | 国产福利一区二区三区视频 | av电影在线免费观看 | 亚洲视频久久 | 久久久久久久久影视 | 玖玖玖在线观看 | 亚洲午夜久久久久久久久电影网 | 精品国产视频一区 | 日韩免费高清在线观看 | 亚洲免费观看在线视频 | 亚洲精品在线观看的 | 亚洲专区视频在线观看 | 成人av电影免费在线播放 | 丁香婷婷激情国产高清秒播 | se婷婷| 亚洲欧美日韩精品久久奇米一区 | 国产亚洲精品xxoo | 日本美女xx | 97夜夜澡人人爽人人免费 | 中文字幕在线视频一区二区三区 | 成人一区二区在线 | 天天干天天操天天 | 超碰在线免费福利 | 久久国产精品99久久久久久丝袜 | 在线观看日韩国产 | 五月综合网站 | www.天天干.com | 国产中文字幕精品 | 免费av 在线| 中文字幕在线电影 | 欧美日韩视频一区二区 | 在线免费中文字幕 | 涩涩资源网 | 天天射射天天 | 九九激情视频 | 国产精品综合久久久久久 | 狠狠躁日日躁狂躁夜夜躁av | 久久黄色免费视频 | 午夜精品久久久99热福利 | 一区二区三区电影大全 | 午夜精品婷婷 | 人人玩人人添人人澡97 | 成人久久影院 | av高清不卡| 在线中文字母电影观看 | 日韩精品无| 国产精品丝袜 | 波多野结衣小视频 | 国产亚洲精品久久 | 午夜精品一区二区三区在线播放 | 日韩性片 | 99精品乱码国产在线观看 | 中文字幕在线视频一区 | 国产女v资源在线观看 | 亚洲高清免费在线 | 婷婷成人综合 | 成人影音在线 | 久久免费公开视频 | 久久精品免视看 | 激情丁香婷婷 | 成人黄色片在线播放 | 国产精久久久久久久 | 国产精品免费在线播放 | 亚洲成av人电影 | 青青河边草观看完整版高清 | 久久9999久久 | 久久撸在线视频 | a国产精品 | 国产精品一区二区三区在线播放 | 在线免费观看欧美日韩 | 午夜视频在线瓜伦 | 在线观看日韩专区 | 亚洲一区二区三区毛片 |