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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

7、java中的面向对象思想和体现

發布時間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7、java中的面向对象思想和体现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???? ? java是一種面向對象的程序設計語言,在程序中使用對象來描述具體的事物,當多個事物具有共同的特點時,可以將事物的共同特點進行抽象,然后封裝成一個包含事物共同特點的集合,在java中叫做封裝成一個類,可以將面向對象的主要特點是(抽象)封裝、繼承和多態。

封裝

?????? 所謂抽象,就是將一些具體的事物之間存在的共同之處抽取出來,然后形象化的描述,在java中抽象的過程就是將事物共同的靜態屬性和動態屬性封裝成類的過程,事物的靜態屬性可以抽象成變量,動態屬性則可以封裝成一個方法(函數),封裝是面向對象的核心思想,封裝指的的是將對象的屬性和動作進行封裝,對外隱藏本身的實現細節。例如:狗、貓,可以找他們之間的共同點,都有顏色這一屬性,則可以封裝一個顏色屬性到類中;再者他們都要吃飯,則可以封裝一個吃飯的方法到類中,不管是狗還是貓,我們只需要知道他們能吃飯就可以了,并不需要具體了解他們吃飯的具體步驟,這就是對外開放但是隱藏本身的實現細節。

?類、方法、變量

??????? 定義類、變量和方法時都會用到權限修飾符:public、protected、default、private,被public修飾的變量和方法可以隨便訪問;被protected、private修飾的變量和方法只能在當前類中使用。

??????? 類中可以包含變量和方法,具體的實現代碼必須要寫在具體的方法中,變量又分為局部變量和成員變量,方法中聲明的變量就是局部變量,類里邊、方法外邊聲明的變量就是成員變量,變量的定義包含以下部分:修飾符、變量類型、變量名 ,代碼如下:

public class Dog{//變量的聲明//private 私有修飾符//int 變量類型//color 變量名private int color;}

方法的定義包含以下部分:修飾符、返回值類型(構造方法除外)、方法名、方法體。類中的方法根據功能劃分可分為兩類,一類時構造方法、另一類是普通的方法,構造方法用來構造當前類的對象,初始化對象的屬性,而普通的方法就是根據對象動態屬性抽象過來的方法。代碼如下:

public class Animal {public String color;/*** 構造方法,沒有返回值,方法名和類名相同,可用于初始化類中封裝的變量*/public Animal(String color) {//this.color中的color指的是當前類中的變量//第二個color是局部變量color的值//this關鍵字可用于表示當前類this.color = color;}/*** 普通方法,int是返回值類型,eat是方法名 */public int eat() {//局部變量int flag = 0;System.out.println("Animal在吃飯。。。");return flag;//返回值}}

定義方法時可以調用其他的方法,方法可以被重載,一個類中不可以定義完全相同的兩個方法,但是可以定義兩個方法名相同但是參數列表不同的方法,這兩個方法的關系就是重載,代碼如下:

public class Animal {/** 兩個方法的方法名相同參數列表不同則兩個方法重載,和返回值無關,方法可以重載多個*/public void eat() {}public int eat(int flag) {return flag;}public void eat(String flag) {} }

每一個類就相當于一個模板,可以根據這個模板創造出具體的對象,在java中使用new關鍵字來創建對象,使用 “.” 來調用類中公開的方法和變量代碼如下:

class Animal {public int flag;public void eat() {System.out.println("正在吃飯");}}public class Test {public static void main(String[] args) {Animal animal = new Animal();//創建對象animal.eat();//調用方法}}

繼承、抽象類、接口

?????? 當一個類被封裝后,一般不鼓勵二次封裝,一般當類的功能不足以支持當前需求時,我們會考慮對此類進行擴展,java中可以使用繼承來實現這一想法。例如這里有類A,類中有一個計算四邊形周長的方法,但是現在想計算正方形的周長,雖然計算四邊形周長的方法可以用于計算正方形,但是想實現的簡單點,就可以再封裝一個類B,然后B繼承類A,在java中用關鍵字extends來表示繼承,B extends A,這就叫做類B繼承自類A,A是B的父類,B是類A的子類,然后可以在B中重新聲明一個方法用來計算正方形的周長。子類可以使用父類所有公開的屬性和方法,每一個類只能繼承一個父類(例如:在血緣關系上,一個兒子只有一個父親),所以java中是單繼承。再如上邊的計算四邊形的方法,如果在子類中聲明一個方法,此方法與父類中的方法完全相同,這就是方法的重寫。代碼如下:

public class Animal {public int flag;public void eat() {//這里已經聲明了eat方法System.out.println("正在吃飯");}}-----------------------------------------------------------------------------------//Dog類繼承了Animal類,擁有了Animal類的公開的功能 public class Dog extends Animal{@Override//這個注解的意思是重寫方法public void eat() {//重寫父類方法System.out.println("Dog在吃飯。。。");} }

???????? 在寫代碼的過程中,聲明了一個方法,但是不知如何實現,這時可以將方法體刪掉,然后使用修飾符abstract 來修飾這個方法,這個方法就叫做抽象方法,如果一個類中存在抽象方法,那么這個類必須使用abstract修飾,以將此類標記成抽象類,如果一個類中的所有方法都是抽象的,那么這個類就可以聲明成一個接口,使用interface 來聲明接口。抽象類和接口都不可以實例化(就是指不可以使用new關鍵字來創建對象)。抽象類可以被繼承,如果子類聲明的不是抽象類,那么就必須重寫繼承的抽象父類中的所有抽象方法。接口可以被實現,使用implements 關鍵字進行接口的實現,實現接口的類如果不聲明成抽象類,就必須重寫實現接口中所有的方法,一個類不可以繼承多個類,但是可以實現多個接口,這樣就解決的java單繼承的尷尬。代碼如下:

//聲明接口 interface public interface Animal {//聲明一個方法public abstract void run();}//聲明接口 interface interface Animal2 {//聲明一個方法public abstract void eat();}------------------------------------------------------------------------------//實現Animal,Animal2接口,重寫接口中的方法,如果多個接口,則每一個接口中的方法都要實現 public class Dog implements Animal ,Animal2{@Overridepublic void eat() {System.out.println("dog eat ...");}@Overridepublic void run() {// TODO Auto-generated method stub}}

static、final

???????? static關鍵字意為靜態的意思,static可以修飾變量、方法、代碼塊,只需要記住一點:被static修飾的屬性和方法是所有根據當前類創建的對象所共享的,一個對象做出修改,其他對象就會修改,在內存中只有一份。

???????? final關鍵字意為最終之意,final可用來修飾類、方法、變量,被修飾的類不可被繼承、被修飾的方法不能重寫、被修飾的變量不能重新賦值。秩序記住一點,只要被final修飾,什么東西就都不能改了,保持最終的狀態。

多態

???????? 最后說一下多態的理解,所謂多態就是多種狀態,統一類的不同對象所表現的不同的狀態,就是父類(接口)的引用指向子類(實現類)的對象,實現多態有以下幾中方式 :繼承類、實現接口。例如封裝一個動物類,類中有動物的顏色這一變量、動物吃飯方法,然后分別封裝狗類和貓類,然后狗類和貓類都繼承動物類,這時我聲明一個動物類的變量,然后創建對象的時候,將此變量指向一個狗的對象,以為狗屬于動物(狗類繼承自動物類),這時動物就表現出了多態性,創建誰的對象,這個動物就會表現出誰的狀態。代碼實現如下:

public class Animal {public String color;public void eat() {System.out.println("Animal在吃飯。。。");}}-------------------------------------------------------------------------------------public class Dog extends Animal{@Overridepublic void eat() {System.out.println("Dog在吃飯。。。");} }class Cat extends Animal{@Overridepublic void eat() {System.out.println("Cat在吃飯。。。");} }-------------------------------------------------------------------------------------public class Test {public static void main(String[] args) {normal();//正常執行,不表現多態poly(); //表現多態}/*** 正常調用* @author chaizepeng**/public static void normal() {Animal animal = new Animal();animal.eat();Dog dog = new Dog();dog.eat();Cat cat = new Cat();cat.eat();}/*** 表現出多態性* @author chaizepeng**/public static void poly() {Animal animalDog = new Dog();animalDog.eat();Animal animalCat = new Cat();animalCat.eat();} }

?

總結

以上是生活随笔為你收集整理的7、java中的面向对象思想和体现的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩国产亚洲欧美 | 最新中文字幕一区 | 一级片aaaaa 国产又黄又粗又猛又爽 | 超碰五月天 | 亚洲石原莉奈一区二区在线观看 | 五月婷网 | 久久国产精品国语对白 | a级片免费观看 | 不卡av一区| 国偷自产视频一区二区久 | 中文字幕有码在线 | いいなり北条麻妃av101 | 在线观看一二区 | 超碰人人cao| 91麻豆精品国产91久久久无需广告 | 国产精品伦一区二区三级视频 | av在线播放国产 | 色偷偷欧美 | 国产在线播放一区二区三区 | 91视频在线 | 加勒比hezyo黑人专区 | 亚洲精品久久久中文字幕 | 亚洲欧洲日本国产 | 午夜影院体验区 | 高跟鞋和丝袜猛烈xxxxxx | 一个色综合久久 | 亚洲视频欧美 | 麻豆做爰免费观看 | 越南黄色一级片 | 91在线观看视频 | 青青操网 | 二区三区在线视频 | 黄色成人av | 操碰av | 一级二级在线观看 | 老熟妇午夜毛片一区二区三区 | 欧美女同在线 | 亚洲欧美影院 | 国产三级三级看三级 | 亚洲免费在线 | 黄污视频在线观看 | 欧美大片在线免费观看 | 亚洲最大激情网 | 久久99伊人 | 日批在线观看视频 | 99热视 | 久久久久无码国产精品不卡 | 欧美精品久久久久久久久 | 国产午夜成人久久无码一区二区 | 国产精品毛片一区二区在线看 | 免费在线播放 | 国产午夜性春猛交ⅹxxx | 日本人妻丰满熟妇久久久久久 | 欧美片 | 肥臀浪妇太爽了快点再快点 | 激情成人综合网 | 国内视频自拍 | 超碰在线免费播放 | 色资源av | 美女让男生桶 | 色播亚洲| 精品视频免费观看 | 加勒比hezyo黑人专区 | 一本色道久久综合狠狠躁 | 欧美日韩精品一区 | 久久精品国产av一区二区三区 | 国产视频一区二区在线播放 | 久久av喷吹av高潮av萌白 | 成人午夜在线视频 | 免费久久精品 | 成人动漫视频在线观看 | 大地资源中文在线观看免费版 | 国产精品永久免费 | 91欧美大片 | 国产精品成人久久久 | 影音先锋精品 | 日本高清视频一区 | 久久刺激 | 欧美又粗又深又猛又爽啪啪九色 | 小向美奈子在线观看 | 欧美一区成人 | 91啪国产| xxx日韩| 欧美黑人又粗又大又爽免费 | 精品少妇人妻av一区二区 | 在线日韩成人 | av影院在线观看 | 精品久久久久国产 | 日本人妻丰满熟妇久久久久久 | 精品成人一区二区 | 中文在线字幕免费观 | 综合色综合 | 亚洲精品久久久久久久久久久 | 麻豆网| 国产有码在线 | 免费精品视频一区二区三区 | www日本高清| 日本精品影院 | 伊人网成人网 |