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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

面向对象编程基础

發布時間:2024/3/12 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象编程基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象編程基礎

一、類與方法

1、面向對象編程

編程語言優點語言級別舉例
面向機器語言讓使用者擺脫計算機的一些純事物性的細節問題,而專心考慮程序間的內在聯系。低級機器語言(1,0)、匯編語言
面向過程語言不必再去考慮機器指令的細節,只要按著具體語言的語法要求去編寫Fortran語言、C語言
面向對象語言更加符合人的思維模式,鼓勵創造性的程序設計高級C++、Python、Java

面向對象編程的三大特點:封裝性,繼承性,多態性。

2、類的成員變量與方法

在面向對象編程中,一個源程序一般有若干個類。類聲明的變量被稱作對象,以下是聲明一個學生類的格式,包含著一個學生的各種基本屬性,如姓名、生日、年齡、成績。

public class student{String name;String birthday;int age;double score; }

特別注意:Java中只能有一個公共類。

2.1 成員變量

即在在 Java 中對象的屬性,例如上方生命的類的四項數據。

數據類型byte,short,int,longfloat,doublecharbooleanString
默認值00.0空格falsenull
2.2 成員方法

例如,給上述學生類添加更改個人信息和輸出的方法:

public void input() {name="wang";birthday="2000/01/01";age=21;score=95; } private void output() {System.out.println(name+" "+birthday+" "+age+" "+score); }

其中public, private是用來控制方法的訪問權限。而void關鍵字體現了方法沒有返回值。

而成員方法具有三種參數,列舉如下。

參數類型特點實例
值參數在方法中對形參的修改并不會影響實參。計算箱子里圖書的總數
引用參數對參數的修改會反映到原有的數組或者其他引用類型上。將美元轉換為人民幣
不定長參數表示方法:參數類型… 參數名

3、構造方法

通過修改上述輸入學生個人信息的方法實現相同功能。

public student() {name="wang";birthday="2000/01/01";age=21;score=95; }

這一函數沒有返回值類型,且與類重名,被稱為構造函數。構造函數的修飾符為public。

4、this關鍵字

首先存在以下實例。

String name="wang"; private void output(String name) {System.out.println(name); } public static void main(String[] args) {com.test.student xs=new com.test.student();xs.output("li"); }

運行結果:
lili li
如果想輸出成員變量的值,需要運用this。

String name="wang"; private void output(String name) {System.out.println(this.name); } public static void main(String[] args) {com.test.student xs=new com.test.student();xs.output("li"); }

this除了可以調用成員變量或方法外,還可以作為方法的返回值。例如:

private student output(String name) {System.out.println(this.name);return this; }

5、靜態變量和靜態方法

當不想建立一個類的實例的時候,可以使用靜態變量。

public class cost {static double money=0;static void getMoney(){money+=1000;}static void spendMoney(){money-=750;}static void output(){System.out.println(money);}public static void main(String[] args){getMoney();output();} }

運行結果:
1000.01000.0 1000.0
此外,用static修飾代碼區域可以稱之為靜態代碼塊,可用于完成類的初始化操作,在類聲明時運行。

6、類的主方法

通俗的來說,相當于C語言的主函數,是類運行的入口。

public static void main(String[] args) {getMoney();output(); }

例如這是5中類的主方法。主方法必須調用靜態方法,并且沒有返回值。

二、繼承與多態

1、類的繼承

繼承的子類一般與父類有一些相同的屬性。例如我們可以建立人的類。

public class human {String name="wang";String birthday;int age;private human output(String name){System.out.println(this.name);return this;} }public class student extends human{double score;private student output(double score){System.out.println(this.score);System.out.println(this.name);return this;}public static void main(String[] args){com.test.student xs=new com.test.student();xs.output(95);} }

運行結果:
0.0,wang0.0, wang 0.0,wang

2、繼承關鍵字

名稱作用
implements可以實現多個接口,仿多繼承的特性。
super引用當前對象的父類成員
this指向當前類的引用
final將類設置為不可繼承模式

implements繼承的實例:

public interface human { public void live(); } public interface learner { public void learn(); } public class student implements human,learner { }

3、繼承的特性

1、子類不繼承父類的private屬性和方法;
2、子類可以對父類進行擴展,擁有自己的屬性和方法;
3、子類是不繼承父類的構造器(構造方法或者構造函數)的,它只是調用(隱式或顯式)。如果父類的構造器帶有參數,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器并配以適當的參數列表;
4、 如果父類構造器沒有參數,則在子類的構造器中不需要使用 super 關鍵字調用父類構造器,系統會自動調用父類的無參構造器。

4、多態的轉型

類型應用語法
向上轉型使用父類完成子類操作父類類型 變量名 = new 子類類型()
向下轉型使用子類特有功能子類類型 變量名 =(子類類型) 父類類型的變量

三、實例

1、設計加油站類和汽車類,加油站提供一個給車加油的方法,參數為剩余汽油數量。每次執行加油方法,汽車的剩余汽油數量都會加 2。

public class addoil {public double add(){return 2;} }public class test extends addoil{double oil;public test(double left){oil=left;}public static void main(String[] args){test car=new test(5);System.out.println(""+(car.oil+car.add()));} }

2、智能手機的默認語言為英文。,但制造手機時可以將默認語言設置為中文。編寫手機類, 無,參構造方法使用默認語言設計,利用有參構造方法修改手機的默認語言。

public class test {String language="English";public test(boolean x){if(x){language="Chinese";}}public static void main(String[] args){test phone=new test(true);System.out.println(""+phone.language);} }

3、張三去KFC買可樂,商家默認不加冰塊。但是張三可以要求加 3 個冰塊。請利用有參構造方法實現上述功能。

public class test {int ices=0;public test(boolean x){if(x){ices+=3;}}public static void main(String[] args){test bk=new test(true);System.out.println(""+bk.ices);} }

4、創建教師類,類中有姓名、性別和年齡三個屬性,在構造方法中使用 this 關鍵字分別為這三個成員屬性賦值。

public class test {String name;String xb;int age;public test(){this.name="wang";this.xb="nan";this.age=30;}public static void main(String[] args){test teacher=new test();} }

5、一只大熊貓,長 1.3 米,重 90千克。在自定義方法中使用this關鍵字調用類的成員變量并在控制臺輸出這只大熊貓的信息。

public class test {double length=1.3;double weight=90;private void show(){System.out.println(this.length+" "+this.weight);}public static void main(String[] args){test panda=new test();panda.show();} }

6、創建信用卡類,有兩個成員變量分別是卡號和密碼,如果用戶開戶時沒有設置初始密碼,則使用"123456"作為默認密碼。設計兩個不同的構造方法,分別用于用戶設置密碼和用戶未設置密碼兩種構造場景。

public class test {String num;String pw;public test(){pw="123456";}public test(String npw){pw=npw;}public static void main(String[] args){test card=new test();System.out.println(""+card.pw);} }

參考資料:

1、https://github.com/datawhalechina/team-learning-program/blob/master/Java/5.%E7%B1%BB%E4%B8%8E%E6%96%B9%E6%B3%95.md

2、https://github.com/datawhalechina/team-learning-program/blob/master/Java/6.%E7%BB%A7%E6%89%BF%E4%B8%8E%E5%A4%9A%E6%80%81.md

3、https://github.com/datawhalechina/team-learning-program/blob/master/Java/%E7%BB%83%E4%B9%A0%E9%A2%98%EF%BC%9A%E7%B1%BB%E4%B8%8E%E6%96%B9%E6%B3%95.md(實例出處1)

4、https://github.com/datawhalechina/team-learning-program/blob/master/Java/%E7%BB%83%E4%B9%A0%E9%A2%98%EF%BC%9A%E7%BB%A7%E6%89%BF%E4%B8%8E%E5%A4%9A%E6%80%81.md(實例出處2)

5、https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E8%BF%87%E7%A8%8B%E8%AF%AD%E8%A8%80

6、搜索引擎及自我探索。

總結

以上是生活随笔為你收集整理的面向对象编程基础的全部內容,希望文章能夠幫你解決所遇到的問題。

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