中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中類和對象的示例分析

發布時間:2021-11-13 08:23:27 來源:億速云 閱讀:114 作者:小新 欄目:開發技術

這篇文章主要介紹了Java中類和對象的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

類可以看成是創建Java對象的模板

1、類的定義

public class Dog {
    String name;
    int age;

    void eat() {
    }
    void sleep() {
    }
}

2、類中變量的類型

局部變量:在方法或語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會自動銷毀。

成員變量(實例變量):成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。

類變量:類變量也聲明在類中,方法體之外,但必須聲明為 static 類型。

3、構造方法

構造方法的名稱必須與類同名,一個類可以有多個構造方法。

在創建一個對象的時候,至少要調用一個構造方法。 如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個默認構造方法。

public class Dog {
 public Dog() {
  System.out.println("構造Dog");
 }
}

4、重載方法

創建兩個具有相同名稱和不同參數列表(即不同的參數數量或類型)的方法時,就擁有了一個重載 方法。

在運行時,JRE 基于傳遞給它的參數來決定調用您的重載方法的哪個變體。

我們甚至可以在一個方法中調用另一個同名的重載方法。

但要注意:在使用重載方法時,

  • 不能僅通過更改一個方法的返回類型來重載它。

  • 不能擁有兩個具有相同名稱和相同參數列表的方法。

5、繼承

要表示一個類繼承自某一個超類,我們可以在聲明類時,在 className 后加上 extends

例如:

public class Employee extends Person {
  // Employee 繼承自 Person
  public Employee() {
    super();
    }
  
    public Employee(String name, int age, int height, int weight,
  String eyeColor, String gender) {
        super(name, age, height, weight, eyeColor, gender);
  }
}

在構造函數中,調用 super([args]) 來初始化父類。

5.1 重寫方法

如果一個子類提供其父類中定義的方法的自有實現,這被稱為方法重寫。

重寫的形式類似于重載,但需要加上一個 @Override。例如,當父類中有一個 foo() 方法時,我們可以在子類中這樣重寫它:

@Override
public int foo() {
 // TODO Auto-generated method stub
 return super.foo();
}

【注】這段代碼是使用 Eclipse 自動生成的,它只是調用了父類中的方法(super.foo()),沒有任何改變,但實際中我們不會這么使用。

重寫后,在類中直接使用 method()調用重寫后的函數,但我們任然可以通過 super.method() 調用父類中的(重寫前的)方法。

6、創建對象

對象是根據類創建的。 創建對象需要以下三步:

  • 聲明:聲明一個對象,包括對象名稱和對象類型。

  • 實例化:使用關鍵字 new 來創建一個對象。

  • 初始化:使用 new 創建對象時,會調用構造方法初始化對象。

public class Dog {
 public static void main(String[] args) {
  Dog Dog0 = new Dog();
 }
}

7、訪問實例變量和方法

  • 訪問實例的變量:實例名.變量名

  • 調用實例的方法:實例名.方法名()

public class Dog {
 String name;
 int age;

 void eat(String food) {
  System.out.println(name + " is eating " + food + ".");
 }

 public Dog() {
  name = "Dog";
  age = 0;

  System.out.println("構造():");
  System.out.println(name + "\t" + age);
 }
 public Dog(String dogName, int dogAge) {
  name = dogName;
  age = dogAge;
  System.out.println("構造(name, age):");
  System.out.println(name + "\t" + age);
 }

 public static void main(String[] args) {
  Dog Dog0 = new Dog();
  Dog Dog1 = new Dog("FooBar", 3);

  // 訪問變量 
  Dog0.name = "Ana";
  System.out.println(Dog0.name);

  // 訪問方法
  Dog1.eat("cat");

 }
}

運行?上面代碼將輸出:

構造():
Dog 0
構造(name, age):
FooBar 3
Ana
FooBar is eating cat.

8、比較對象

Java 語言提供了兩種比較對象的方法:

  • == 運算符

  • equals() 方法

8.1 使用 == 比較對象

== 語法比較對象是否相等,只有在 ab 相等時,a == b 才返回 true

對于內置基本類型,需要它們的值相等。

對于對象,需要兩個對象引用同一個對象實例。

例如:

import java.util.logging.Logger;

public class Equals {
 public static void main(String[] args) {
  Logger l = Logger.getLogger("Test");

  int i = 12,
   j = 12,
   k = 99;
        
  Integer a = new Integer(12);
  Integer b = a;
  Integer c = new Integer(12);

  l.info("i == j: " + (i == j));
  l.info("i == k: " + (i == k));

  l.info("a == b: " + (a == b));
  l.info("a == c: " + (a == c));
 }
}

運行這段代碼將得到如下結果:

i == j: true
i == k: false
a == b: true
a == c: false

【注】若使用 a = Integer.valueOf(12); 與 c = Integer.valueOf(12); 分別得到 a 和 c,則 a == c 將是 true !

8.2 使用 equals() 比較對象

equals() 是每種 Java 語言對象都可以自由使用的方法,因為它被定義為 java.lang.Object 的一個實例方法(每個 Java 對象都繼承該對象)。

調用 equals() 的方法如下:

a.equals(b);

此語句調用對象 aequals() 方法,向它傳遞對象 b 的引用。

默認情況下,Java 程序使用 == 語法檢查兩個對象是否相同。但是因為 equals() 是一種方法,所以它可以被重寫。這樣,對于任何對象,我們都可定義適合的 equals() 的含義。

【注】在重寫 equals() 時,我們可以利用 object.hashCode()( to return a hash code value for the object.)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java中類和對象的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卓尼县| 小金县| 靖江市| 慈溪市| 额济纳旗| 嘉荫县| 临潭县| 巴塘县| 新乡县| 巴里| 丹阳市| 灵武市| 阿拉善右旗| 景宁| 舒城县| 上思县| 赤水市| 固安县| 阳谷县| 克山县| 金寨县| 霍林郭勒市| 上饶县| 北票市| 疏附县| 绿春县| 焦作市| 东明县| 曲周县| 平武县| 炎陵县| 二手房| 内江市| 布尔津县| 安龙县| 霍山县| 班戈县| 太湖县| 徐水县| 安陆市| 泽库县|