Java 面向對象

Java 面向對象

面向對象的三大特征

  • 封裝 (Encapsulation)
  • 繼承 (Inheritance)
  • 多態 (Polymorphism)

類的訪問機制:

  • 在一個類中的訪問機制:類中的方法可以直接訪問類中的成員變量。(例外:static方法訪問非static,編譯不通過。)
  • 在不同類中的訪問機制:先創建要訪問類的對象,再用對象訪問類中定義的成員。

匿名對象:

我們也可以不定義對象的句柄,而直接調用這個對象的方法。這樣的對象叫做匿名對象。

如:new Person().shout();

使用情況:

如果對一個對象只需要進行一次方法調用,那么就可以使用匿名對象。

我們經常將匿名對象作為實參傳遞給一個方法調用。

方法的重載(overload)

重載的概念
在同一個類中,允許存在一個以上的同名方法,只要它們的參數個數或者參數類型不同即可。
重載的特點:
與返回值類型無關,只看參數列表,且參數列表必須不同。(參數個數或參數類型)。調用時,根據方法參數列表的不同來區別。
重載示例:
//返回兩個整數的和 int add(int x,int y){return x+y;} //返回三個整數的和 int add(int x,int y,int z){return x+y+z;} //返回兩個小數的和 double add(double x,double y){return x+y;}
public class PrintStream{
public static void print(int i) {……}
public static void print(float f) {……}
private static void print(String s) {……}public static void main(String[] args){ print(3);print(1.2f);print(“hello!”);}
}

//下面采用數組形參來定義方法

public static void test(inta ,String[] books);

//以可變個數形參來定義方法

public static void test(inta ,String…books);

說明:

1.可變參數:方法參數部分指定類型的參數個數是可變多個

2.聲明方式:方法名(參數的類型名…參數名)

3.可變參數方法的使用與方法參數部分使用數組是一致的

4.方法的參數部分有可變形參,需要放在形參聲明的最后

構造方法(構造器)的特征

  • 它具有與類相同的名稱
  • 它不聲明返回值類型。(與聲明為void不同)
  • 不能被static、final、synchronized、abstract、native修飾,不能有return語句返回值
  • 根據參數不同,構造器可以分為如下兩類:
    • 隱式無參構造器(系統默認提供)
    • 顯式定義一個或多個構造器(無參、有參)
  • l注 意:
    • Java語言中,每個類都至少有一個構造器
    • 默認構造器的修飾符與所屬類的修飾符一致
    • 一旦顯式定義了構造器,則系統不再提供默認構造器
    • 一個類可以創建多個重載的構造器
    • 父類的構造器不可被子類繼承

this–關鍵字

  • 在java中,this關鍵字比較難理解,它的作用和其詞義很接近。

    • 它在方法內部使用,即這個方法所屬對象的引用;

    • 它在構造器內部使用,表示該構造器正在初始化的對象。

  • this表示當前對象,可以調用類的屬性、方法和構造器
  • 什么時候使用this關鍵字呢?
    • 當在方法內需要用到調用該方法的對象時,就用this。
class Person{       // 定義Person類private String name ;   private int age ;           public Person(String name,int age){ this.name = name ;   this.age = age ;  }public void getInfo(){  System.out.println("姓名:" + name) ;this.speak();}public void speak(){System.out.println(“年齡:” + this.age);   }
}

注意:

1.使用this()必須放在構造器的首行!

2.使用this調用本類中其他的構造器,保證至少有一個構造器是不用this的。

JavaBean

1.JavaBean是一種Java語言寫成的可重用組件。

2.所謂javaBean,是指符合如下標準的Java類:

  • 類是公共的
  • 有一個無參的公共的構造器
  • 有屬性,且有對應的get、set方法

3.用戶可以使用JavaBean將功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,并且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變。

public class TestJavaBean{private String name;  //屬性一般定義為privateprivate int age;public  TestJavaBean(){}public int getAge(){return age;}public void setAge(int age){this.age = age;}public String getName(){return name;}public void setName(String name){this.name = name;
}

JDK主要的包介紹

1.java.lang—-包含一些Java語言的核心類,如String、Math、Integer、System和Thread,提供常用功能。

  1. java.net—-包含執行與網絡相關的操作的類和接口。

  2. java.io —-包含能提供多種輸入/輸出功能的類。

  3. java.util—-包含一些實用工具類,如定義系統特性、接口的集合框架類、使用與日期日歷相關的函數。

  4. java.text—-包含了一些java格式化相關的類

  5. java.sql—-包含了java進行JDBC數據庫編程的相關類/接口

  6. java.awt—-包含了構成抽象窗口工具集(abstractwindow toolkits)的多個類,這些類被用來構建和管理應用程序的圖形用戶界面(GUI)。

  7. java.applet—-包含applet運行所需的一些類。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

交換機老化測試和性能測試方法收集

說明:這是一個做交換機朋友給的一個方法,只做老化測試,不做壓力滿載測試。 我所理解的:老化測試是指在一定的時間內工作負荷之后,看有沒有故障和不穩定的現象出現。 而對于壓力測試,需要通過專業的測試設備…

【webGL入門2】點線面的繪制

用js繪制webGL的點: THREE.Vector3 function ( x, y, z ) {    //用THREE聲明的變量都是全局變量。this.x x || 0;this.y y || 0;this.z z || 0;}; 注意:“||”(或)運算符,就是當xnull或者undefine時&#xff…

docker --- mysql的部署

MySQL部署 [1]查詢本地鏡像中是否含有 centos/mysql-57-centos7(我們用到的鏡像) docker images[2] 拉取鏡像 docker pull centos/mysql-57-centos7注: centos/mysql-57-centos7 是我們用到的鏡像 [3] 創建容器 docker run -id --nametensquare_mysql -p 33306:3306 -e M…

Java中的排序

Java中的排序 排序方法的選擇 1.若n較小(如n≤50),可采用直接插入或直接選擇排序。當記錄規模較小時,直接插入排序較好;否則因為直接選擇移動的記錄數少于直接插入,應選直接選擇排序為宜。 2.若文件初始狀態基本有序(指正序)&a…

Codeforces Round #493 (Div. 2) C. Convert to Ones 亂搞_構造_好題

題意: 給你一個長度為 nnn 的 010101串 ,你有兩種操作: 1.將一個子串翻轉,花費 XXX 2.將一個子串中的0變成1,1變成0,花費 YYY 求你將這個01串變成全是1的串的最少花費。 首先,我們可以將串按照0…

[T-ARA][??? ??][看著那個女人的話]

歌詞來源:http://music.163.com/#/song?id29343995 作曲 : ?? [作曲 : Ko-nan] 作詞 : ??/?? [作詞 : Ko-nan-/lo-Ko] baby i hate you [baby i hate you] but i love you [but i love you] cant live without you [cant live without you] baby i hate you …

node --- 連接mysql(docker環境) Sequelize庫

mysql 數據庫 [1] 首先配置 docker 環境 采用 docker-compose 方法 源碼: /test-mysql/docker-compose.yml version: 3.1 services:mysql:image: mysqlcommand: --default-authentication-pluginmysql_native_passwordrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: examp…

Java-接口練習

Java-接口練習 編寫2個接口:InterfaceA和InterfaceB;在接口InterfaceA中有個方法voidprintCapitalLetter();在接口InterfaceB中有個方法void printLowercaseLetter();然 后寫一個類Print實現接口InterfaceA和InterfaceB&#xff0…

類模板與運算符重載(一個簡單的例子)

類模板與運算符重載(一個簡單的例子) 標簽(空格分隔): C 算法競賽 下面是一段簡單的代碼,表示我們建立了一個類模板Vector,可以看做是對STL中vector的簡單實現。 為了讓這個Vector支持通過下標…

Java 試題一

Java 試題一 1、GC是什么? 為什么要有GC 答:GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問題的地方, 忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動 …

操作系統 --- [筆記]功能、組成

操作系統的作用 管理計算機硬件充當計算機用戶和計算機硬件的中介(操作系統控制硬件,協調各個用戶應用程序的硬件) 計算機系統的資源 CPU時間、內存空間、文件存儲空間、I/O設備等 操作系統的定義 如何定義一個操作系統: 計算機系統的根本目的是,執行用戶程序并且更容易解…

Java 試題二

Java 試題二 1、哪個選項和show函數重載 class Demo{ void show(int a,int b,float c){} } A.void show(int a,float c,int b){}//yes B,void show(int a,int b,float c){}//一模一樣。不可以出現在同一個類中。 C.int show(int a,float c,int b){return a;}//yes。 D.in…

Python之簡單驗證碼實現

def v_code(): ret for i in range(5): num random.randint(0,9) alf chr(random.randint(65,122)) s str(random.choice([num,alf])) ret s return retprint(v_code())轉載于:https://www.cnblogs.com/geeker-xjl/p/8809915.html

測繪軟件使用體會

進入石家莊鐵道大學已經兩年了,學習測繪工程專業也已經兩年了,大一的時候大多是對測繪不了解,到了大二的時候上半學期我就開始了解和使用一些測繪專業相關的軟件,在大二下半學期實習的時候更是深入的學習和使用測繪軟件&#xff0…

javascript --- event loop

栗子1 求下面函數的輸出 console.log(script start);setTimeout(() > {console.log(setTimeoout); }, 0);Promise.resolve().then(function(){console.log(promise1); }).then(function(){console.log(promise2); }) console.log(script end);說明: 在"promise2"…

sublime 設置自動換行

1.打開sublime,點擊preferences -> settings 2.將word_wrap的值由auto修改為true(若沒有word_wrap,手動添加) 轉載于:https://www.cnblogs.com/hitwgs/p/8821316.html

Java 試題三

Java 試題三 1、java類是否可以多繼承,怎么實現多繼承? 答:java沒有多繼承,但可以通過接口的形式來達到多繼承的目地。 2、我比較兩個String總是false,但是它們明明都是”abc” ! 答:比較Str…

Cent os常見操作命令

1.查看防火墻狀態:firewall-cmd –-state 2.關閉防火墻:systemctl stop firewalld.service 3.禁止防火墻開機啟動:systemctl disable firewalld.service 4.關閉selinux:vi /etc/selinux/config,然SELINUXdisabled 5.查…

koa --- 使用中間件多層級拋出錯誤

說明 能夠熟練的掌握錯誤的拋出,可以在一定程度上提高代碼的開發效率和可讀性 構造錯誤 本栗采用調用一個不存在的函數來拋出錯誤 const Koa require(koa); const app new Koa();// 響應時間輸出中間件 app.use(async (ctx, next) > {await next();// 獲取響應頭,印證…

電腦的真正價值

1.不是應用程序,而是開發程序 2.高級語言就像是人類的語言,低級語言就像是一個全心全意幫我的社交專家,他幫我說服電腦實現我的指令 3.高級語言就是字節碼,低級語言幫我轉換成機器碼 4.有時候,高級語言的一個眼神&…