Java學習筆記(註釋、物件初始化過程、單例模式)
面向物件
9.幫助文件的製作
9.1註釋
- 原則:
1、註釋形式統一
在整個應用程式中,使用具有一致的標點和結構的樣式來構造註釋。如果在其它專案中發現它們的註釋規範與這份文件不同,按照這份規範寫程式碼,不要試圖在既成的規範系統中引入新的規範。
2、註釋內容準確簡潔
內容要簡單、明瞭、含義準確,防止註釋的多義性,錯誤的註釋不但無益反而有害。
- 註釋格式:
1. 單行(single-line)註釋:“//……”
2. 塊(block)註釋:“/……/”
3. 文件註釋:“/*……/”
P.S. 註釋引用@shiyuezhong:
9.2 eclipse生成文件的方法
使用eclipse生成文件(javadoc)主要有三種方法:
在專案列表中按右鍵,選擇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);
先將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 為何保證物件唯一:
- 為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件;
- 還為讓其他程式可以訪問到該物件,只好在本類中,自定義一個物件;
- 為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。
11.2 如何實現:
- 將建構函式私有化;
- 在類中建立一個本類物件;
- 提供一個方法可以獲取到該物件。
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