關於Java類的定義以及執行順序學習教程
類必須先定義才能使用。類是創建對象的模板,創建對象也叫類的實例化。
下面通過一個簡單的例子來理解Java中類的定義:
public class Dog{ String name; int age; void bark(){ // 汪汪叫 tln("汪汪,不要過來"); } void hungry(){ // 飢餓 tln("主人,我餓了"); }}
對示例的説明:
public 是類的修飾符,表明該類是公共類,可以被其他類訪問。修飾符將在下節講解。class 是定義類的關鍵字。Dog 是類名稱。name、age 是類的成員變量,也叫屬性;bark()、hungry() 是類中的函數,也叫方法。
一個類可以包含以下類型變量:
局部變量:在方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束後,變量就會自動銷燬。 成員變量:成員變量是定義在類中、方法體之外的變量。這種變量在創建對象的時候實例化(分配內存)。成員變量可以被類中的方法和特定類的語句訪問。 類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型。static 也是修飾符的一種,將在下節講解。
構造方法
在類實例化的過程中自動執行的方法叫做構造方法,它不需要你手動調用。構造方法可以在類實例化的過程中做一些初始化的.工作。
構造方法的名稱必須與類的名稱相同,並且沒有返回值。
每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個默認的構造方法。
下面是一個構造方法示例:
public class Dog{ String name; int age; // 構造方法,沒有返回值 Dog(String name1, int age1){ name = name1; age = age1; tln("感謝主人領養了我"); } // 普通方法,必須有返回值 void bark(){ tln("汪汪,不要過來"); } void hungry(){ tln("主人,我餓了"); } public static void main(String arg[]){ // 創建對象時傳遞的參數要與構造方法參數列表對應 Dog myDog = new Dog("花花", 3); }}
運行結果:
感謝主人領養了我
説明:
構造方法不能被顯示調用。 構造方法不能有返回值,因為沒有變量來接收返回值。
創建對象
對象是類的一個實例,創建對象的過程也叫類的實例化。對象是以類為模板來創建的。
在Java中,使用new關鍵字來創建對象,一般有以下三個步驟:
聲明:聲明一個對象,包括對象名稱和對象類型。
實例化:使用關鍵字new來創建一個對象。
初始化:使用new創建對象時,會調用構造方法初始化對象。
例如:
Dog myDog; // 聲明一個對象myDog = new Dog("花花", 3); // 實例化
也可以在聲明的同時進行初始化:
Dog myDog = new Dog("花花", 3);
訪問成員變量和方法
通過已創建的對象來訪問成員變量和成員方法,例如:
// 實例化Dog myDog = new Dog("花花", 3);// 通過點號訪問成員變量;// 通過點號訪問成員方法();
下面的例子演示瞭如何訪問成員變量和方法:
public class Dog{ String name; int age; Dog(String name1, int age1){ name = name1; age = age1; tln("感謝主人領養了我"); } void bark(){ tln("汪汪,不要過來"); } void hungry(){ tln("主人,我餓了"); } public static void main(String arg[]){ Dog myDog = new Dog("花花", 3); // 訪問成員變量 String name = ; int age = ; tln("我是一隻小狗,我名字叫" + name + ",我" + age + "歲了"); // 訪問方法 (); ry(); }}
運行結果:
感謝主人領養了我我是一隻小狗,我名字叫花花,我3歲了汪汪,不要過來主人,我餓了
Java類的基本運行順序
我們以下面的類來説明一個基本的 Java 類的運行順序:
public class Demo{ private String name; private int age; public Demo(){ name = "微學苑"; age = 3; } public static void main(String[] args){ Demo obj = new Demo(); tln( + "的年齡是" + ); }}
基本運行順序是:
先運行到第 9 行,這是程序的入口。 然後運行到第 10 行,這裏要 new 一個Demo,就要調用 Demo 的構造方法。 就運行到第 5 行,注意:可能很多人覺得接下來就應該運行第 6 行了,錯!初始化一個類,必須先初始化它的屬性。 因此運行到第 2 行,然後是第 3 行。 屬性初始化完過後,才回到構造方法,執行裏面的代碼,也就是第 6 行、第 7 行。 然後是第8行,表示 new 一個Demo實例完成。 然後回到 main 方法中執行第 11 行。 然後是第 12 行,main方法執行完畢。
作為程序員,應該清楚程序的基本運行過程,否則糊里糊塗的,不利於編寫代碼,也不利於技術上的發展。
-
關於Java程序員面試中的多線程問題總結
很多核心Java面試題來源於多線程(Multi-Threading)和集合框架(CollectionsFramework),理解核心線程概念時,嫻熟的實際經驗是必需的。這篇文章收集了Java線程方面一些典型的問題,這些問題經常被高級工程師所問到。0、Java中多線程同步是什麼?在多線程程序下,同步能控...
-
java環境變量設置path
導語:java的環境變量是怎麼設置的呢?以下小編為大家介紹java環境變量設置path文章,僅供參考!java環境變量設置path環境變量是一個具有特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。例如path,當要求系統運行一個程序而沒有告訴它程序所在的完整路...
-
Java開發崗位面試題
為幫助參加Java開發崗位面試的朋友們做好準備,以下是本站小編搜索整理的一份Java集合面試問題40個【附答案】,供參考練習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!一、Java基礎1、String類為什麼是final的。2、HashMap的源碼,實現原...
-
Java運算符
計算機的最基本用途之一就是執行數學運算,作為一門計算機語言,Java也提供了一套豐富的運算符來操縱變量。歡迎大家閲讀!更多相關信息請關注相關欄目!Java中的運算符和C/C++相差無幾。數學運算符數學運算,結果為一個數值。見下表:關係運算符關係運算符,結果為一個布爾...