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

java類(lèi)的定義與使用舉例詳解

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

一、概念

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

二、使用

1.成員變量

對(duì)象的屬性也稱(chēng)為成員變量,成員變量可以是任意類(lèi)型,成員變量的作用域是整個(gè)類(lèi)

定義一個(gè)學(xué)生類(lèi):

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

上面定義了一個(gè)name屬性并寫(xiě)了它的get和set方法。

2.成員方法

在剛才例子中的成員方法就是setName和getName,一個(gè)是設(shè)置名字一個(gè)是獲取名字的方法。成員方法中可以設(shè)置任何類(lèi)型的參數(shù),也可以在成員方法中調(diào)用其他成員方法。

上面的this指的是自己,意思就是調(diào)用自己內(nèi)部的屬性或者方法。

3.權(quán)限修飾符

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

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

4.靜態(tài)方法

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

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

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

三、重寫(xiě)toString方法

其實(shí)對(duì)于一般的對(duì)象來(lái)說(shuō)都會(huì)有這個(gè)方法,這個(gè)方法的目的,主要就是將對(duì)象按字符串的方式輸出出來(lái),用白話(huà)說(shuō)就是:使用文字描述這個(gè)對(duì)象里各個(gè)變量是什么值 ,這個(gè)變量是什么類(lèi)型的變量等 ,并且任何類(lèi)都從Object繼承了這個(gè)方法,你不重寫(xiě)toString()方法的話(huà)輸出的就是一個(gè)內(nèi)存地址,也就是哈希碼值。并不是輸出這個(gè)類(lèi)的各個(gè)變量的值,記得不重寫(xiě)好像只打印對(duì)象的類(lèi)型而已。
返回的是 getClass().getName() + “@” +Integer.toHexString(hashCode());
也就是 類(lèi)名 + @ +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;
    }
}

輸出:

上面就是沒(méi)有重寫(xiě)tostring方法打印出來(lái)的東西,是什么我們也看不懂,只知道它是個(gè)對(duì)象的地址,不利于我們觀看

下面是重寫(xiě)了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() {//重寫(xiě)方法
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

輸出結(jié)果:

這個(gè)結(jié)果就看起來(lái)很舒服,我們就能看到剛才自己傳的有哪些值。

注:打印一個(gè)對(duì)象,可以直接System.out.println(stu)其實(shí)println方法內(nèi)部會(huì)自動(dòng)調(diào)用stu 的 toString() 方法。

總結(jié)

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

相關(guān)文章

最新評(píng)論