Java知多少(18)类的定义及其实例化
類必須先定義才能使用。類是創(chuàng)建對象的模板,創(chuàng)建對象也叫類的實例化。
下面通過一個簡單的例子來理解Java中類的定義:
對示例的說明:
- public 是類的修飾符,表明該類是公共類,可以被其他類訪問。修飾符將在下節(jié)講解。
- class 是定義類的關(guān)鍵字。
- Dog 是類名稱。
- name、age?是類的成員變量,也叫屬性;bark()、hungry()?是類中的函數(shù),也叫方法。
一個類可以包含以下類型變量:
- 局部變量:在方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結(jié)束后,變量就會自動銷毀。
- 成員變量:成員變量是定義在類中、方法體之外的變量。這種變量在創(chuàng)建對象的時候?qū)嵗?#xff08;分配內(nèi)存)。成員變量可以被類中的方法和特定類的語句訪問。
- 類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型。static 也是修飾符的一種,將在下節(jié)講解。
構(gòu)造方法
在類實例化的過程中自動執(zhí)行的方法叫做構(gòu)造方法,它不需要你手動調(diào)用。構(gòu)造方法可以在類實例化的過程中做一些初始化的工作。
構(gòu)造方法的名稱必須與類的名稱相同,并且沒有返回值。
每個類都有構(gòu)造方法。如果沒有顯式地為類定義構(gòu)造方法,Java編譯器將會為該類提供一個默認的構(gòu)造方法。
下面是一個構(gòu)造方法示例:
運行結(jié)果:
感謝主人領(lǐng)養(yǎng)了我
說明:
- 構(gòu)造方法不能被顯示調(diào)用。
- 構(gòu)造方法不能有返回值,因為沒有變量來接收返回值。
創(chuàng)建對象
對象是類的一個實例,創(chuàng)建對象的過程也叫類的實例化。對象是以類為模板來創(chuàng)建的。
在Java中,使用new關(guān)鍵字來創(chuàng)建對象,一般有以下三個步驟:
- 聲明:聲明一個對象,包括對象名稱和對象類型。
- 實例化:使用關(guān)鍵字new來創(chuàng)建一個對象。
- 初始化:使用new創(chuàng)建對象時,會調(diào)用構(gòu)造方法初始化對象。
例如:
也可以在聲明的同時進行初始化:
1 Dog myDog = new Dog("花花", 3);訪問成員變量和方法
通過已創(chuàng)建的對象來訪問成員變量和成員方法,例如:
1 // 實例化 2 Dog myDog = new Dog("花花", 3); 3 // 通過點號訪問成員變量 4 myDog.name; 5 // 通過點號訪問成員方法 6 myDog.bark();下面的例子演示了如何訪問成員變量和方法:
1 public class Dog{ 2 String name; 3 int age; 4 5 Dog(String name1, int age1){ 6 name = name1; 7 age = age1; 8 System.out.println("感謝主人領(lǐng)養(yǎng)了我"); 9 } 10 11 void bark(){ 12 System.out.println("汪汪,不要過來"); 13 } 14 15 void hungry(){ 16 System.out.println("主人,我餓了"); 17 } 18 19 public static void main(String arg[]){ 20 Dog myDog = new Dog("花花", 3); 21 // 訪問成員變量 22 String name = myDog.name; 23 int age = myDog.age; 24 System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "歲了"); 25 // 訪問方法 26 myDog.bark(); 27 myDog.hungry(); 28 } 29 }運行結(jié)果:
感謝主人領(lǐng)養(yǎng)了我
我是一只小狗,我名字叫花花,我3歲了
汪汪,不要過來
主人,我餓了
系列文章:
Java知多少(上)
Java知多少(中)
Java知多少(下)
轉(zhuǎn)載于:https://www.cnblogs.com/Coda/p/4374998.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Java知多少(18)类的定义及其实例化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop发行版的比较与选择
- 下一篇: struts2在lt;s:selectg