欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java類的定義與使用舉例詳解

 更新時間:2023年11月23日 11:37:23   作者:藍朽  
這篇文章主要給大家介紹了關于java類的定義與使用的相關資料,類的方法是用來定義類的行為,在方法中通過操作類的成員變量、編寫業(yè)務邏輯、返回 結果等實現類的業(yè)務行為,需要的朋友可以參考下

一、概念

  • 我們不能將一個事物稱之為一類事物,例如一只鳥我們不能稱為鳥類,但是我們需要給一類事物統稱,例如大雁,麻雀,燕子,統稱為鳥類,在Java中我們對這種統稱需要用到類的概念。
  • 類是同一類事物的統稱,將現實世界的一個事物抽象成對象,類就是這類事物的統稱,如鳥類,人類,家禽類。類是構造對象時所依賴的規(guī)范。一只鳥會有一對翅膀,他可以用這對翅膀進行飛行,基本上所有的鳥類都有“有翅膀”這個特性和用這對翅膀飛行的功能,這樣的具有相同特性和行為的一類事物就稱為類,類的思想就是這樣的。
  • 類是封裝對象的屬性和行為的載體,在Java語言中,類對象的行為是以方法的形式定義的,對象的屬性是以成員變量的形式定義的,所以類包括對象的屬性和方法。

二、使用

1.成員變量

對象的屬性也稱為成員變量,成員變量可以是任意類型,成員變量的作用域是整個類

定義一個學生類:

public class Student {
    private String name;//name屬性
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

上面定義了一個name屬性并寫了它的get和set方法。

2.成員方法

在剛才例子中的成員方法就是setName和getName,一個是設置名字一個是獲取名字的方法。成員方法中可以設置任何類型的參數,也可以在成員方法中調用其他成員方法。

上面的this指的是自己,意思就是調用自己內部的屬性或者方法。

3.權限修飾符

public,private,default,protected是java的四大修飾符,下面分別主要介紹四者之間的區(qū)別:

  • public是權限最大的修飾符,他可以修飾類,成員變量,成員方法,構造方法。被public修飾后,可以再任何一個類中,不管同不同包,任意使用。
  • private可以修飾成員變量,成員方法,構造方法,不能修飾類(此刻指的是外部類,內部類不加以考慮)。被private修飾的成員只能在其修飾的本類中訪問,在其他類中不能調用,但是被private修飾的成員可以通過set和get方法向外界提供訪問方式。
  • defalut即不寫任何關鍵字,它可以修飾類,成員變量,成員方法,構造方法。被默認權限修飾后,其只能被本類以及同包下的其他類訪問。
  • protected可以修飾成員變量,成員方法,構造方法,但不能修飾類(此處指的是外部類,內部類不加以考慮)。被protected修飾后,只能被同包下的其他類訪問。如果不同包下的類要訪問被protected修飾的成員,這個類必須是其子類。
    還有一個是final
    final 修飾類,類不能被繼承,修飾變量只能賦值一次,修飾方法方法不能被重寫
修飾符本類同一個包的類其他包的類
public可訪問可訪問可訪問
private可訪問不可訪問不可訪問
protected可訪問可訪問不可訪問

4.靜態(tài)方法

定義了靜態(tài)方法就可以直接用對象.方法來直接調用,就不需要先創(chuàng)建對象再調用方法了,靜態(tài)變量和靜態(tài)方法通常是為了提供共享數據或方法,如下:

public class test {
    public static void main(String[] args) {
        System.out.println(Student.name);//使用 對象.屬性 調用
        Student.method();//使用 對象.方法 調用
    }
}
class Student {
    static String name="王五";
    public static void method(){
        System.out.println("這是一個靜態(tài)方法");
    }
}

以上代碼定義了一個靜態(tài)屬性和靜態(tài)方法,通過Student.屬性或者Student.方法來調用,就不需要先new對象再調用了

三、重寫toString方法

其實對于一般的對象來說都會有這個方法,這個方法的目的,主要就是將對象按字符串的方式輸出出來,用白話說就是:使用文字描述這個對象里各個變量是什么值 ,這個變量是什么類型的變量等 ,并且任何類都從Object繼承了這個方法,你不重寫toString()方法的話輸出的就是一個內存地址,也就是哈希碼值。并不是輸出這個類的各個變量的值,記得不重寫好像只打印對象的類型而已。
返回的是 getClass().getName() + “@” +Integer.toHexString(hashCode());
也就是 類名 + @ +hashCode的值

比如下面的例子:

public class test {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("zhangsan");
        stu.setAge(18);
        System.out.println(stu);
    }
}
class Student {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
}

輸出:

上面就是沒有重寫tostring方法打印出來的東西,是什么我們也看不懂,只知道它是個對象的地址,不利于我們觀看

下面是重寫了toString方法的:

public class test {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("zhangsan");
        stu.setAge(18);
        System.out.println(stu);
    }
}
class Student {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String toString() {//重寫方法
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

輸出結果:

這個結果就看起來很舒服,我們就能看到剛才自己傳的有哪些值。

注:打印一個對象,可以直接System.out.println(stu)其實println方法內部會自動調用stu 的 toString() 方法。

總結

到此這篇關于java類的定義與使用的文章就介紹到這了,更多相關java類定義內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于mybatis?plus實現數據源動態(tài)添加、刪除、切換,自定義數據源的示例代碼

    基于mybatis?plus實現數據源動態(tài)添加、刪除、切換,自定義數據源的示例代碼

    這篇文章主要介紹了基于mybatis?plus實現數據源動態(tài)添加、刪除、切換,自定義數據源,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • SpringCloud?微服務數據權限控制的實現

    SpringCloud?微服務數據權限控制的實現

    這篇文章主要介紹的是權限控制的數據權限層面,意思是控制可訪問數據資源的數量,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • IKAnalyzer使用不同版本中文分詞的切詞方式實現相同功能效果

    IKAnalyzer使用不同版本中文分詞的切詞方式實現相同功能效果

    今天小編就為大家分享一篇關于IKAnalyzer使用不同版本中文分詞的切詞方式實現相同功能效果,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java如何修改JsonObject中的屬性值

    Java如何修改JsonObject中的屬性值

    這篇文章主要介紹了Java如何修改JsonObject中的屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring Boot與Redisson實時排行榜功能

    Spring Boot與Redisson實時排行榜功能

    排行榜功能是常見且重要的需求之一,本文主要介紹了Spring Boot與Redisson實時排行榜功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • MybatisPlusInterceptor實現sql攔截器超詳細教程

    MybatisPlusInterceptor實現sql攔截器超詳細教程

    這篇文章主要給大家介紹了關于MybatisPlusInterceptor實現sql攔截器超詳細教程的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Java BigDecimal和double示例及相關問題解析

    Java BigDecimal和double示例及相關問題解析

    這篇文章主要介紹了Java BigDecimal和double示例及相關問題解析,簡單介紹了BigDecimal類的相關內容,分享了兩則相關實例,對問題進行了分析,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Android開發(fā)簡單計算器實現代碼

    Android開發(fā)簡單計算器實現代碼

    這篇文章主要介紹了Android開發(fā)簡單計算器實現,本文放置了完整的Android開發(fā)電腦,通過部署項目可以直接按到效果,希望本篇文章可以對你有所幫助
    2021-06-06
  • SpringBoot @FixMethodOrder 如何調整單元測試順序

    SpringBoot @FixMethodOrder 如何調整單元測試順序

    這篇文章主要介紹了SpringBoot @FixMethodOrder 調整單元測試順序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot 編程式事務使用及兩種實現方式

    SpringBoot 編程式事務使用及兩種實現方式

    編程式事務管理是通過編寫代碼來管理事務,相對于聲明式事務(@Transactional注解),它提供了更細粒度的事務控制,這篇文章主要介紹了SpringBoot 編程式事務使用及兩種實現方式,需要的朋友可以參考下
    2024-12-12

最新評論