真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java面向對象-part01-創(chuàng)新互聯(lián)

目錄

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供永吉網(wǎng)站建設、永吉做網(wǎng)站、永吉網(wǎng)站設計、永吉網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、永吉企業(yè)網(wǎng)站模板建站服務,10年永吉做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

方法

對方法的一些理解

設計方法的建議

方法的定義

面向對象和面向過程的區(qū)別

面向過程

面向對象

類和對象

類的構造器(類的構造函數(shù))

修飾詞:this

用于修飾屬性

用于修飾方法

this用于修飾構造器

方法的重載

什么是方法的重載

方法重載的例子

第一個例子,重載是依靠不同的參數(shù)來區(qū)別而不是依靠不同類型的返回值來區(qū)別

第二個例子,參數(shù)個數(shù)不同情況下的重載

第三個例子,參數(shù)類型不同情況下的重載

第四個例子,參數(shù)位置不同情況下的重載

形參和實參

形參(形式參數(shù))

實參(實際參數(shù))

可變個數(shù)的形參(傳遞的參數(shù)個數(shù)是可變的)

基本格式

使用說明

舉個栗子

權限修飾符(public、protected、default、private)

封裝

封裝的目的

封裝的作用

一個封裝例子


方法 對方法的一些理解
  • 方法是解決一類問題的步驟的有序結合
  • 方法包含在類和對象之中
  • 方法在一個類中被創(chuàng)建,在其他地方被調用
設計方法的建議
  • 盡可能地使每一個方法實現(xiàn)一個功能,這樣一來可以方便進行擴展
方法的定義
[訪問修飾符] 方法的返回值類型 方法名([參數(shù)類型 參數(shù)名]){
    ...
    方法體
    ...

    [return 返回值;]
}
  • 訪問修飾符表明了該方法的訪問類型,訪問修飾符可以是public、private、protected、default中的任意一種。
  • 訪問修飾符可以不寫,當沒有寫訪問修飾符時,默認使用default作為訪問修飾符。例如下面的代碼使用的便是default訪問修飾符。
    public class class1{
        void fun1(){
            System.out.println("這是一個方法");
        }
    }
  • 方法的返回值類型表明該方法最后將數(shù)據(jù)以什么數(shù)據(jù)類型返回給該方法的調用者。
  • 方法名用于標識一個方法,調用時通過方法名來選擇所要調用的方法。
  • 參數(shù)部分用于定義該方法傳遞的參數(shù),一個方法可以有多個傳遞參數(shù),也可以沒有傳遞參數(shù)。
  • 方法體:方法中需要執(zhí)行操作的部分。
  • 返回值:返回一個值給該方法的調用者。
  • 需要注意的是,當返回值類型為void時,方法不需要也不可以擁有返回值。
面向對象和面向過程的區(qū)別 面向過程
  • 面向過程實現(xiàn)了一種解決問題的步驟
  • 使用函數(shù)實現(xiàn)解決問題的步驟
  • 在需要時通過函數(shù)調用來實現(xiàn)這些步驟,最終解決問題
  • 面向過程的性能比較高
  • 比較注重解決問題的過程
面向對象
  • 面向對象將構成問題的事務分解成對象
  • 建立對象是為了描述某一個事務在解決整個問題的過程中發(fā)生的行為
  • 面向對象具有:封裝性、繼承性、多態(tài)性
  • 對象容易維護、容易復用、容易擴展
  • 通過面向對象的方式可以設計出具有低耦合性的系統(tǒng)
類和對象
  • 在內容上,類是對象的一些屬性以及對象的一些行為方法
  • 在定義上,類是某一類事物的整體描述(或者是定義)
  • 面向對象實際上就是以類的方式組織代碼,以對象的方式組織(或者是封裝)數(shù)據(jù)
  • 對象就是類的具體化
  • 類的抽象層級比較高,對象的抽象層級比較低
  • 下面看一個簡單的類和對象的關系:
//class1.java
public class class1{
    //以人類為例

    //定義一些屬性
    private String country;//國家
    private String area;//地區(qū)
    private String city;//城市
    private String address;//住址
    private int age;//年齡
    private String sex;//性別
    private String name;//姓名
    private String phone;//電話

    //定義一些方法
    //告訴別人自己的國家
    public String getCountry() {
        return country;
    }

    //告訴別人自己的地區(qū)
    public String getArea() {
        return area;
    }
}

//class2.java
public class class2{
    public static void main(String[] args) {
        //創(chuàng)建一個對象(實例化一個類)
        class1 c1 = new class1();
        //輸出
        System.out.println(c1.getCountry());
    }
}
類的構造器(類的構造函數(shù))
  • 在創(chuàng)建一個對象時,會調用該類的構造函數(shù)
  • 在沒有重寫類的構造函數(shù)時,類默認地會有一個構造函數(shù),也就是說,即使一個類中一片空白,也會隱式地有一個方法,這個方法就是類的構造函數(shù)。例如下面這個例子:
//class1.java
public class class1{
    
}

//class2.java
public class class2{
    public static void main(String[] args){
        class1 c1 = new class1();
        //類class1中,什么內容都沒有,但是在此處創(chuàng)建class1的對象可以成功地創(chuàng)建,這就是調用了隱式存在的類的構造函數(shù)
    }
}
  • 類的構造器有兩個特點:①構造器的名稱和類名是相同的;②類的構造器沒有返回值。
  • 類的構造器的作用:在使用new關鍵字創(chuàng)建對象時,實際上就是在調用類的構造器
  • 默認地,類會有一個隱式的沒有任何傳遞參數(shù)的構造器
  • 如果定義了有傳遞參數(shù)的類的構造器,那么便需要一并將沒有參數(shù)傳遞的類的構造器顯示定義。例如:
    //class1.java
    public calss class1{
        int age;
    
        public class1(int i){
            this.age = i;
        }
        //上面定義了有參構造函數(shù),此處便需要一并顯式定義無參構造函數(shù)
        public class1(){
            this.age = 1;
        }
    }

修飾詞:this 用于修飾屬性
  • 在一個類中,如果要訪問的內容是類中的屬性,那么最好在屬性前加上this修飾詞。例如:
    //this修飾屬性時的用法
    this.屬性名 = 值或者是變量名;
  • 為什么上面說“最好加上this修飾詞”而不是“一定需要加上this修飾詞”,因為并不是所有情況下不加this修飾詞都會得到錯誤的結果
  • 當沒有發(fā)生重名時,即等式左邊的屬性名和等式右邊的變量名不重名時,this修飾詞可以省略不寫,此時帶有this修飾詞和不帶有this修飾詞的效果相同。例如:
    //class1.java
    public class class1{
        int age;
    
        public void setAge(int num){
            age = num;
            this.age = num;
            //上面兩種寫法的效果相同,兩種寫法屬性age都可以獲得num的值
        }
    }
  • 但是發(fā)生重名時,即等式左邊的屬性名和等式右邊的變量名重名時,this修飾詞不可以省略,當this修飾詞省略時,會獲得預期之外的效果。例如:
    //class1.java
    public class class1{
        int age;
    
        public void setName1(int age){
            age = age;
            //當發(fā)生重名并且不使用this修飾符的情況下,屬性的賦值會遵守“就近原則”
            //也就是說,此處等式左邊的age獲得的值,并不是setName1函數(shù)中傳遞進來的參數(shù)age的值,而是這一個類中屬性age的值,因此執(zhí)行完這一句后,屬性age的值為0(相當于把自己賦值給自己,什么都不會被改變)
        }
    
        public void setName2(int age){
            this.age = age;
            //執(zhí)行完這一句后,屬性age的值為setName2函數(shù)中傳遞進來的參數(shù)age的值
        }
    }
用于修飾方法
  • 在同一個類中,方法和方法之間可以互相調用
  • 在這種情況下,調用時,方法名前面的this可以有也可以沒有,不會影響最終的效果。例如:
    //class1.java
    public class class1{
        //計算兩數(shù)的和
        public int add(int a,int b){
            return a + b;
        }
        //計算一組數(shù)字的和
        public int addArr(int[] nums){
            int sum = 0;
            for(int i:nums){
                sum = add(sum,i);//此處無論寫不寫this,調用的都是類class1下的add()方法,因此在方法調用時,this是可以省略的
            }
            
            return sum;
        }
    }
this用于修飾構造器
  • 在同一個類中,構造器之間可以互相調用
  • 構造器調用構造器時,需要用this修飾符對調用的構造器進行修飾
  • 調用構造器時,調用語句需要放在構造器的第一行
  • 調用方法為:this(需要傳遞的參數(shù))
  • 下面是一個構造器調用構造器的例子:
    //class1.java
    public class class1 {
        int age;
        String name;
    
        //該類的無參構造器
        public class1() {
            //調用了一個該類的有參構造器
            this("張三");
            age = 10;
        }
    
        public class1(String name) {
            this.name = name;
        }
    }
  • 但是需要注意的是,在構造器中可以調用該類的方法,但是在方法中不能調用該類的構造器
方法的重載 什么是方法的重載
  • 在一個類中,允許存在多個同名方法,但是這些同名方法的傳遞參數(shù)是不同的
  • 傳遞參數(shù)不同可以有這些情況:①參數(shù)的個數(shù)不同;②參數(shù)的類型不同;③參數(shù)的位置不同(這一種情況并不是在所有場合下都通用的)
方法重載的例子 第一個例子,重載是依靠不同的參數(shù)來區(qū)別而不是依靠不同類型的返回值來區(qū)別
//class1.java
public calss class1{
    //有如下兩個同名方法,它們的參數(shù)相同但是方法的返回值不同
    public int add(int a,int b){}
    public double add(int a,int b){}
    //如果將上面的代碼復制到IDE中,則編譯器會報錯,因為方法的返回值并不作為方法重載的依據(jù)
}
第二個例子,參數(shù)個數(shù)不同情況下的重載
//class1.java
public class class1{
    //有以下兩個函數(shù),這兩個函數(shù)是重載的,它們的參數(shù)個數(shù)不同
    public int add(int a,int b){}
    public int add(int a,int b,int c){}
}
第三個例子,參數(shù)類型不同情況下的重載
//class1.java
public class class1{
    //下面幾種方法都是重載的,它們的參數(shù)類型不同
    public double add(int a,int b){}
    public double add(int a,double b){}
    public double add(double a,int b){}
    public double add(double a,double b){}
}
第四個例子,參數(shù)位置不同情況下的重載
//class1.java
public class class1{
    //參數(shù)位置不同情況下的重載
    //這種情況需要特別注意,因為不是簡單粗暴地交換參數(shù)的位置就是重載了

    //先來看下面幾種是重載的情況
    public void show(int a,int b,String c){}
    public void show(int a,String c,int b){}
    public void show(String c,int a,int b){}
    //這幾種寫法是可以成功重載的,簡單地說,它們也是屬于參數(shù)類型不同的情況

    //將上面三個重載函數(shù)保留,那么下面這些寫法便不是重載,并且編譯器會報錯
    public void show(int b,int a,String c){}
    public void show(String c,int b,int a){}

    //上面兩個函數(shù)不能構成重載,簡單地說,它們的參數(shù)類型和已經(jīng)存在的同名函數(shù)的參數(shù)類型相同
    
    //因此嚴格地說來,只有兩種情況構成函數(shù)的重載
    //1.參數(shù)的個數(shù)不同
    //2.參數(shù)的位置不同

    //用另一種方法分析,可能更容易看出上面函數(shù)不能重載的原因
    //從函數(shù)的聲明來看,上面的函數(shù)聲明依次是這樣的
    public void show(int,int,String);
    public void show(int,String,int);
    public void show(String,int,int);

    public void show(int,int,String);
    public void show(String,int,int);
    //這樣便很容易可以發(fā)現(xiàn),有幾個函數(shù)在聲明時的參數(shù)類型順序是重復的,折舊造成這些參數(shù)類型順序重復的函數(shù)無法構成重載
}
形參和實參 形參(形式參數(shù))
  • 在定義函數(shù)名和函數(shù)體的時候使用的參數(shù)
  • 形參的目的是用來接收調用該函數(shù)時傳入的參數(shù)
實參(實際參數(shù))
  • 在調用有參函數(shù)時,主函數(shù)和被調函數(shù)之間存在的數(shù)據(jù)傳輸
  • 實參才是調用有參函數(shù)時真正傳遞的內容
  • 下面是一個例子:
    //class1.java
    public class class1{
        public static void main(String[] args){
            show("111");//這邊傳遞的參數(shù)便是實參
        }
        
        public static void show(String str){//這邊的str便是形參
            System.out.println(str);
        }
    }
可變個數(shù)的形參(傳遞的參數(shù)個數(shù)是可變的) 基本格式

數(shù)據(jù)類型...變量名

使用說明
  • 可變個數(shù)的形參的聲明只能放在形參部分的末尾
  • 一個函數(shù)的形參聲明部分只能有一個可變個數(shù)的形參
舉個栗子
//class1.java
public class class1 {
    public static void main(String[] args) {
        show(1, "12", "34", "56");
    }


    public static void show(int i, String... str) {
        for (String s : str) {
            System.out.println(s);
        }
    }
}
權限修飾符(public、protected、default、private)
權限修飾符所提供的訪問權限
權限修飾符在類內部的訪問權限在同一個包中的訪問權限在不同的包中的訪問權限在同一個項目中的訪問權限
private可以被訪問不可以被訪問不可以被訪問不可以被訪問
default可以被訪問可以被訪問不可以被訪問不可以被訪問
protected可以被訪問可以被訪問可以被訪問不可以被訪問
public可以被訪問可以被訪問可以被訪問可以被訪問
封裝 封裝的目的

封裝應該將類中的一些內容隱藏掉,只允許在類內部被直接訪問,而在類外部只能通過方法調用的方式被訪問

封裝的作用
  • 提高程序的安全性,保護數(shù)據(jù)
  • 隱藏代碼的實現(xiàn)細節(jié)
  • 統(tǒng)一接口
  • 增加系統(tǒng)的可維護性
一個封裝例子
//class1.java
public class class1 {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

//class2.java
public class class2 {
    public static void main(String[] args) {
        class1 c1 = new class1();
        c1.setAge(20);
        System.out.println(c1.getAge());
        //若是通過c1.age直接訪問類的成員變量,編譯器便會報錯,因為成員變量age是private類型,無法直接被外部訪問
    }
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


新聞標題:java面向對象-part01-創(chuàng)新互聯(lián)
當前鏈接:http://weahome.cn/article/deopjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部