1. 程式人生 > >Java學習筆記(註釋、物件初始化過程、單例模式)

Java學習筆記(註釋、物件初始化過程、單例模式)

面向物件

9.幫助文件的製作

9.1註釋

- 原則:

1、註釋形式統一

在整個應用程式中,使用具有一致的標點和結構的樣式來構造註釋。如果在其它專案中發現它們的註釋規範與這份文件不同,按照這份規範寫程式碼,不要試圖在既成的規範系統中引入新的規範。

2、註釋內容準確簡潔

內容要簡單、明瞭、含義準確,防止註釋的多義性,錯誤的註釋不但無益反而有害。

- 註釋格式:

 1. 單行(single-line)註釋:“//……”

 2. 塊(block)註釋:“/……/”

 3. 文件註釋:“/*……/”

P.S. 註釋引用@shiyuezhong:

java程式碼註釋規範

9.2 eclipse生成文件的方法

使用eclipse生成文件(javadoc)主要有三種方法:

  1. 在專案列表中按右鍵,選擇Export(匯出),然後在Export(匯出)對話方塊中選擇java下的javadoc,提交到下一步。
    在Javadoc Generation對話方塊中有兩個地方要注意的:
    javadoc command:應該選擇jdk的bin/javadoc.exe
    destination:為生成文件的儲存路徑,可自由選擇。
    按finish(完成)提交即可開始生成文件。

    • 用選單選擇:File->Export(檔案->匯出),
      剩下的步驟和第一種方法是一樣的。

    • 選中要生成文件的專案,然後用選單選擇,
      Project->Generate Javadoc直接進入Javadoc Generation對話方塊,剩餘的步驟就和第一種方法在Javadoc Generation對話方塊開始是一樣的。

10.物件的初始化過程

class Person{
    private String name="張某";
    private int age;
    private static String country = "cn";
    Person(String name, int age){
        this.age = age;
        this.name = name;
    }
    {
        System.out.println(name+".."+age);
    }
    public void setName(String name){
        this.name = name;
    }

    public void speak(){
        System.out.println(this.name+"..."+this.age);
    }

    public static void showCountry(){
        System.out.println("country"+country);
    }
}

class PersonDemo{
    public static void main(String[] args){
            Person p = new Person("張三",20);
            p.setName("李四");
    }
}
  • Person p = new Person(“張三”,20);

    1. 先將Person.class檔案通過jvm從硬碟載入入記憶體空間,並開闢堆記憶體空間;

      • 執行該類中static程式碼塊,如果有的話,給Person.class類進行初始化;
      • 棧記憶體中建立一個main,p變數,堆記憶體中建立一個new Person()並分配地址;
      • 在堆記憶體建立物件特有屬性name和age,並預設賦予初始化值(name=null,age=0),接著對這兩屬性顯式初始化(name=”張某”);
      • 對物件進行構造程式碼塊初始化;
      • 對物件進行對應的建構函式初始化(name=”張三”,age=20);
      • 將new Person()記憶體地址賦給棧記憶體中p變數。

      • p.setName(“李四”);

ps:非靜態變數或者功能前一般省略this,靜態變數或功能前省略類名;

11.單例模式

單例設計模式:解決一個類在記憶體只存在一個物件。

11.1 為何保證物件唯一:

  1. 為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件;
  2. 還為讓其他程式可以訪問到該物件,只好在本類中,自定義一個物件;
  3. 為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。

11.2 如何實現:

  1. 將建構函式私有化;
  2. 在類中建立一個本類物件;
  3. 提供一個方法可以獲取到該物件。

11.3 程式碼形式:

  • a)餓漢式:先初始化物件

    class Single{
    private Single(){};//將建構函式私有化;

    private static Single s = new Single();//在類中建立一個本類物件;
    
    public Single getInstance()
    {
        return s;//提供一個方法可以獲取到該物件
    }
    

    }

    class SingleDemo{
    public static void main(String[] args){
    Single ss = single.getInstance();
    Single s1 = single.getInstance();
    }
    }

  • b)懶漢式:物件在方法被呼叫時才初始化,即物件的延時載入


class Single{
private Single(){};//將建構函式私有化;
private static Single s = null;
public Single getInstance()
{
if(s==null)
s = new Single();
return s;//提供一個方法可以獲取到該物件
}
}

class SingleDemo{
    public static void main(String[] args){
        Single ss = single.getInstance();
        Single s1 = single.getInstance();
    }
}

說明:懶漢式的Single一進記憶體,就建好了物件;餓漢式,Single類進記憶體,物件還沒存在,只有呼叫getInstance方法時,才建立物件。但應用時建議採用餓漢式

例:

class Student{
    private int age;

    private Student(){};//將建構函式私有化;
    private static Student s = new Student();//在類中建立一個本類物件;
    public Student getStudent()
    {
        return s;//提供一個方法可以獲取到該物件
    }

    public void setAge(int age)
    {
        this.age = age;
    }
    public void getAge(int age)
    {
        return age;
    }
}

    class SingleDemo{
        public static void main(String[] args){
            Student s1 = Student.getStudent();
            Student s2 = Student.getStudent();
        }
    }

相關推薦

Java學習筆記註釋物件初始過程模式

面向物件 9.幫助文件的製作 9.1註釋 - 原則: 1、註釋形式統一 在整個應用程式中,使用具有一致的標點和結構的樣式來構造註釋。如果在其它專案中發現它們的註釋規範與這份文件不同,按照這份規範寫程式碼,不要試圖在既成的規範系

物件初始過程設計模式(餓漢式與懶漢式)

1.物件初始化過程:(先載入類到記憶體,然後載入類屬性,成員方法) 定義一個類Person,  在new Person("zhangsan",20); 初始化過程: 1.因為new 用到Person

java學習筆記6-面向物件程式設計

1.學生類案例 學生類: package daigua6; /* * 定義一個學生類 * */ public class Student { // 成員變數 String name; int age; // 成員方法 public void study

對象初始過程設計模式(餓漢式與懶漢式)

得到 延時 兩個 都是 person 其他 導致 最大 類屬性 1.對象初始化過程:(先加載類到內存,然後加載類屬性,成員方法)    定義一個類Person, 在new Person("zhangsan",20); 初始化過程: 因為new 用到Person.clas

Java第十六天學習筆記基本資料物件集合框架

基本資料物件 基本資料型別物件包裝類          * 為了方便操作基本資料型別值,將其封裝成了物件,在物件中定義了屬性和行為豐富了該資料的操作。          * 用

java學習筆記Java 流(Stream)文件(File)和IO

用戶輸入 public 文件內容 輸出流 out 單個 java 我們 ready Java 的控制臺輸入由 System.in 完成。 為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。需要i

Java中未給定初始值的基礎資料型別為什麼不能輸出 ——Thinking in Java學習筆記

在java程式設計思想第二章節中有這麼一個練習題:定義一個類,給定兩個無初始值的int和char型別的數值,輸出兩個數的值,驗證int和char的初始值。 我第一次是這麼做的: public static void main(String[] args) { int i; char

Thinking in Java學習筆記物件導論

  最近在看java程式設計思想,對其中自己的一些收穫記錄下來,一方面是加強鞏固自己的學習,另一方面也是方便以後翻閱檢視。 1、將物件看作服務提供者   把物件當作服務的提供者,也就是指關注物件能實現哪些功能,提供哪些服務?它需要哪些物件支援才能實現這些功能?   這樣做的好處就是:

java學習筆記--物件程式設計-類與方法下

***重要*** 程式碼塊     定義:使用{}定義的一段程式碼     根據程式碼塊出現的位置以及關鍵字不同,分為以下四類程式碼塊 普通程式碼塊        

java學習筆記--物件程式設計-類與方法

面向過程-程式設計正規化-c-行為 面向物件-能進行現實生活的抽象 面向介面程式設計 面向切面程式設計 函數語言程式設計正規化 -Scala,Koltin //lamdba表示式 ()-> { } 面向物件三大特徵: a.封裝        將客觀事物

java學習筆記12-繼承抽象類

1.繼承關鍵字extends java中繼承特點: 在Java中,類只支援單繼承,不允許多繼承,也就是說一個類只能有一個直接父類 多個類可以繼承一個父類 在Java中,多層繼承是可以的,即一個類的父類可以再去繼承另外的父類,例如C類繼承自B類,而B類又可以去繼承A類,這時,C類也可稱作A類的

java學習筆記13-介面final多型

1.介面interface 1.1 介面基本使用 package com.daigua13; /* * 介面的成員特點: * 只能有抽象方法 * 只能有常量 * 預設使用public&abstract修飾方法 * 只能使用public&ab

Effective Java學習筆記對於所有物件都通用的方法

Object是一個具體類,但是設計他主要是為了擴充套件,他所有的非final方法(equals,toString,hashCode,clone,finalize)都是要被覆蓋的,並且任何一個類覆蓋非final方法時都要遵守通用原則,以便其他遵守這些預定的類能夠一同運作,

Java學習筆記面向物件1

面向物件 1.何為面向物件 面相物件是相對面向過程而言的 面相物件和麵向過程都是一種思想 面向過程 強調功能行為 面向物件 將功能封裝進物件,強調具備了功能的物件。 面向物件是基於面向過程的。 2.類與物件 類就是對現實生活中事物的

JAVA學習筆記5物件和類

1.        面向物件程式設計(OOP)就是使用物件進行程式設計。物件有自己的特性,狀態和行為。物件的狀態是由具有當前值得資料域(又稱屬性)的集合構成。物件的行為是方法的集合定義的。呼叫物件的一個方法就是要求物件執行一次任務。 2.        類是定義同一型別

Java學習筆記1面向物件

1、Java面向物件中類與物件的概念和使用 方法的定義: 方法就是一段可以重複呼叫的程式碼。 定義格式: 訪問修飾符 返回值型別 方法名(){ 方法主體 } 方法的返回值型別: void型別不需要返回值,其

Java學習筆記5:3.面向物件之方法詳解

  方法是類或物件的行為特徵的抽象,方法是類或物件最重要的組成成分。但從功能上看,方法完全類似於傳統結構化程式設計裡的函式。值得指出的是,Java裡的方法不能獨立存在,所有的方法必須定義在類裡。方法在邏輯上要麼屬於類,要麼屬於物件。 1.方法的所屬性   永遠不要把方法當成

Java學習筆記類與物件

1. 類與物件: 從語義上理解,類是物件的模板,物件是類的例項,從語法上理解,類是一種資料型別,物件是這種型別的變數。在類的內部,方法可以直接訪問該類的私有變數,但對於外部的類,則不可。注意類中的欄位預設為private。 2. 成員方法的修飾: public,pri

JAVA學習筆記1——a++與++a的區別

col int 演示 opera 解析 代碼 數據 ++i div 需求:此博客用於解釋i++與++i的區別。 過程: 1、名稱解釋 ++:自增,即在原有數據基礎上+1,再賦給原有數據。 2、程序演示 (1)代碼: 1 class OperateDemo 2 { 3

JAVA學習筆記

byte repl efi ber 時間 clas 區分大小寫 增強for size @SuppressWarnings("resource")是用來壓制資源泄露警告的。比如使用io類,最後沒有關閉。Set集合特點:1)無序,不隨機2)元素唯一3)沒下標註意:Collect