1. 程式人生 > >java 構造方法、static關鍵字、靜態變數、main方法

java 構造方法、static關鍵字、靜態變數、main方法

一、構造方法
構造方法是一個與類同名的方法,物件的成績就是通過構造方法完成的。每當類例項化一個物件時,類都會自動呼叫構造方法。
構造方法的特點如下:
(1)構造方法沒有返回值,也不能定義為void。
(2)構造方法的名稱要與本類的名稱相同。
(3)構造方法的主要作用是完成物件的初始化工作,它能把定義物件的引數傳給物件成員。

構造方法的定義語法如下:

class Book{
// public 構造方法修飾符 
// Book 構造方法的名稱
    public Book() {       //構造方法

    }
}

有引數構造方法的語法如下:

class Book{
// args 構造方法的引數,可以是多個引數
public Book(int args) { //構造方法 // 對成員變數機選初始化 } }

函式的過載 :
// 引數不同(引數順序 引數個數 引數型別)
// 切記 引數的名字不同 不是函式的過載
// 構造方法也符合 函式的過載

二、static關鍵字
由 static 修飾的變數、常量和方法稱作靜態變數、靜態常量和靜態方法,也被稱為靜態成員。靜態成員是屬於類所有的,區別於個別物件。
1.靜態變數
在java程式中,把共享的變數用static修飾,該變數就是靜態變數。
(1)、語法如下:
① 類名:靜態類成員
② 常見錯誤:
同一個類的不同例項物件,共用同一靜態變數,如果一個類將其更變,另一個類靜態變數就會更變。
③ 當類首次被載入時,靜態變數就被分配到記憶體中,直到程式結束才會被釋放。
靜態變數與成員變數的區別:
1.所屬不同
成員變數: 屬於物件的 又叫物件變數(例項變數)
靜態變數: 屬於類的 又叫類變數
2.記憶體中的儲存位置不同
成員變數:儲存在堆記憶體
靜態變數:儲存在方法區的靜態區
3.記載到記憶體中的時機不同(生命週期不同)
成員變數:隨著物件的建立而建立
靜態變數:隨著類的載入而存在
4.呼叫方法不同
成員變數:只能使用物件去呼叫
靜態變數:可以用物件去呼叫 但是一般用類名去呼叫

public class Demo04 {
    public static void main(String[] args) {

        hero g1 = new hero();
        g1.name = "岳飛";
        hero.dynasty = "宋";
        g1.sayHi();

        hero g2 = new hero();
        g2.name = "霍去病";
        hero.dynasty = "漢";
        g2.sayHi();
    }
}

class hero{
    String name;   //  姓名
static String dynasty;// 朝代 public void sayHi(){ System.out.println(name + "--" + dynasty); } }

這裡寫圖片描述

三、main方法
在java中,main方法作為java應用程式的介面,寫法基本是固定的,例如:

public static void main(string args[])

唯一可以修改的是main 方法中的傳遞字元陣列的名稱,可以不用 args 的名稱。還有,宣告陣列時方括號也可以緊跟型別。

main方法還可以寫成:

public static void main(string[] yourName)

上述寫法都可以看到:
(1)main方法必須定義成public,即公有的;
(2)main方法必須定義成static,即靜態方法;
(3)main方法的返回型別固定為void;
(4)main方法接收一個字串陣列作為引數。

相關推薦

static變數static函式與普通變數普通函式的區別

C程式一直由下列部分組成:      1)正文段——CPU執行的機器指令部分;一個程式只有一個副本;只讀,防止程式由於意外事故而修改自身指令;      2)初始化資料段(資料段)——在程式中所有賦了初值的全域性變數,存放在這裡。      3)非初始化資料段(bss段)——在程式中沒有初始化的全域性變數;核

C語言:static變數static函式與普通變數普通函式的區別

static變數、static函式與普通變數、普通函式的區別 全域性變數(外部變數)的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜

java第七天---面向物件構造方法static關鍵字靜態變數與成員變數的區別

1 構造方法        1 構造方法的作用 建立物件,給物件中的成員進行初始化        2  構造方法的格式特點  a:方法名與類名相同  b:沒有返回值型別,連v

java 構造方法static關鍵字靜態變數main方法

一、構造方法 構造方法是一個與類同名的方法,物件的成績就是通過構造方法完成的。每當類例項化一個物件時,類都會自動呼叫構造方法。 構造方法的特點如下: (1)構造方法沒有返回值,也不能定義為void。 (2)構造方法的名稱要與本類的名稱相同。 (3)構造

Java 007 面向物件(構造方法static關鍵字JDK幫助文件Math類)

知識點梳理 心得體會 小知識點 1.不同型別的靜態變數 1>靜態變數是基本資料型別時,類的外部不用建立該類例項可以能直接使用 2>靜態變數是引用時,即靜態變數是一個物件的引用,必須先初始化這個物件,才能將引用指向靜態變數 2.靜態成員與例項成員 1&

Java學習筆記02--成員變數和區域性變數建構函式構造程式碼塊this關鍵字static關鍵字靜態函式

成員變數和區域性變數 自定義的位置區別: 成員變數是定義在方法之外,類之內的變數。 區域性變數是宣告在方法之內的變數。 作用上的區別: 成員變數的作用描述一類事物的屬性。 區域性變數的作用是提供一個變數給方法內部使用的。 生命週期的區別;

java靜態程式碼塊靜態方法static關鍵字詳解

最近在準備面試,複習java基礎知識,對java中和static關鍵字相關的靜態方法、靜態程式碼塊、非靜態程式碼塊、靜態成員變數的用法進行了詳細的總結。 1. 靜態成員變數 宣告為static關鍵詞修飾的變數叫做靜態成員變數,也叫作全域性變數。被static修飾的成員變數和

Java基礎篇——靜態程式碼塊靜態方法靜態變數構造方法構造程式碼段相關

基本定義 靜態程式碼段 在Java類的設計中,如果某段程式碼想讓其只執行一次,比如一個HashMap的生成,一個數據庫連線池的產生,就可以把相關程式碼寫入static{}包裹的程式碼段中。這個程式碼段就叫靜態程式碼段,在專案啟動時就主動執行,即由虛擬機器內部完成呼叫,且只執

Java的知識點10——static關鍵字靜態初始化塊 引數傳值機制匯入類import 靜態匯入

static 關鍵字 在類中,用static宣告的成員變數為靜態成員變數,也稱為類變數。 類變數的生命週期和類相同,在整個應用程式執行期間都有效。它有如下特點:   1. 為該類的公用變數,屬於類,被該類的所有例項共享,在類被載入時被顯式初始化。   2. 對於該類的所

JAVA父類子類靜態程式碼塊靜態變數構造方法的執行順序

1、第一個檔案Print.java public class Print {    public Print(String s){        System.out.print(s + " ");    }} 2、第二個檔案Test1.java public 

java中的static使用--靜態變數靜態方法

Java 中的 static 使用之靜態變數 大家都知道,我們可以基於一個類建立多個該類的物件,每個物件都擁有自己的成員,互相獨立。然而在某些時候,我們更希望該類所有的物件共享同一個成員。此時就是 static 大顯身手的時候了!! Java 中被 static 修飾的成

Java基礎15-finalstatic關鍵字和Object類

不同 擁有 bsp 指數 col main hashcode 技術分享 fin 一、final關鍵字 1.什麽是final關鍵字 繼承的出現提高了代碼的復用性,並方便開發。但隨之也有問題,有些類在描述完之後,不想被繼承,或者有些類中的部分方法功能是固定的,不想讓子類重寫。可

對象創建static關鍵字靜態變量和成員變量的區別文檔

所有 賦值 隨著 存儲 如何使用 我們 靜態 輸入 進行 1.對象創建 ??Student s = new Student();??步驟:????(1)加載Student。class文件進內存;????(2)在棧內存中為s開辟空間;????(3)在堆內存為學生對象開辟空間;

Java中thisstatic關鍵字的記憶體圖解

  Java中的關鍵字有很多,abstract  default  goto*  null  switch  boolean  do  if  package  nchronzed  break&nb

Java中thisstatic關鍵字的內存圖解

數據區 prot 屬性 volatile stat strong 發展 char ons Java中的關鍵字有很多,abstract default goto* null switch boolean do if package nchronzed

16 Java基礎筆記-finalstatic關鍵字

關鍵字 一,final關鍵字 1,final概念 某些的類或者是類中部分的方法不想讓子類繼承重寫,使用關鍵字final修飾的物件不可被繼承,表示最終,不可變。可以用來修飾類,類成員,成員變數,區域性變數等。 2,final特點 1,final修飾類不可以被繼承,但可以繼承

Java finalstatic 關鍵字基礎面試題

問:談談 Java 中 final、finally、finalize 的區別? 答:這道題其實沒有任何意義,無非就是考察開發者有沒有區分這幾個關鍵字的含義,僅僅關聯是因為長得像而已。 final 是一個修飾符,如果一個類被宣告為 final 則其不能再派生出新的子類,所以一個類不能既被宣告為

Java finalstatic 關鍵字

nbsp fin 嵌套 可變 運行時 空指針 含義 相關 public 問:談談 Java 中 final、finally、finalize 的區別? 答:這道題其實沒有任何意義,無非就是考察開發者有沒有區分這幾個關鍵字的含義,僅僅關聯是因為長得像而已。 final

java學習之superfinalstatic關鍵字及匿名物件

一  super關鍵字   1 在建立子類物件時,父類的構造方法會先執行,因為子類中所有構造方法的第一行有預設的隱式super();語句。 2如果子類的構造方法第一行寫了this呼叫了本類其他構造方法,那麼super呼叫父類的語句就沒有了。 只要是構造方法預設第一行都是super(

Java中this關鍵字static關鍵字final關鍵字instanceof關鍵字用法詳解

1、this關鍵字 this關鍵字代表是物件的引用。也就是this在指向一個物件,所指向的物件就是呼叫該函式的物件引用。實際工作中,存在著建構函式之間的相互呼叫,但是建構函式不是普通的成員函式,不能通過函式名自己接呼叫所以sun公司提供this關鍵字。