static可以用來修飾類的內部結構(除了構造器):屬性、方法、代碼塊、內部類
創新互聯長期為1000+客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為勉縣企業提供專業的成都網站建設、網站制作,勉縣網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。1.1 靜態屬性class Chinese{String name;
int age;
static nation;
}
class Test{public static void main(String[] args){//不用創建對象,就可以調用靜態變量
//因為靜態變量隨著類的加載而加載
Chinese.nation = "CHINA";
}
}
1.2 靜態方法屬性
2.3 餓漢式和懶漢式
- 將構造器設置為private的(這樣類的外部就不能創建對象了)
- 在類的內部創建靜態的類對象instance
- 聲明public的靜態方法getInstance(),返回類內部創建的對象
//單例設計模式
//餓漢式
public class SingletonTest1 {public static void main(String[] args) {Bank b1 = Bank.getInstance();
Bank b2 = Bank.getInstance();
//地址值相同,說明這個類只有一個對象
System.out.println(b1 == b2);
}
}
class Bank {//私有化類的構造器
private Bank() {}
//內部創建類的對象
private static Bank instance = new Bank();
//聲明public,static的getInstance方法,返回內部創建的類
public static Bank getInstance() {return instance;
}
}
//單例模式
//懶漢式
public class SingletonTest2 {public static void main(String[] args) {Order order1 = Order.getInstance();
Order order2 = Order.getInstance();
System.out.println(order1 == order2);
}
}
class Order{private Order(){}
private static Order instance = null;
public static Order getInstance(){if(instance == null){instance = new Order();
}
return instance;
}
}
餓漢式和懶漢式的比較
因為只生成一個對象,所以減少了系統的開銷
class Person{//非靜態代碼塊
{
}
//靜態代碼塊
static{}
}
4.1 靜態代碼塊數字表示賦值的先后順序
final —— 最終的(不可修改)
final可以用來修飾類、方法、變量
final類不能有子類,不能被繼承
比如String類、System類、StringBuffer類
表示此方法不能被重寫
6.3 final修飾變量final修飾變量,此時的變量就稱為一個常量
static final修飾屬性:全局常量
7. abstract關鍵字abstract 可以用來修飾類和方法
7.1 抽象類抽象類不能實例化,只能被其他類繼承
抽象方法只有方法的聲明,沒有方法體
public abstract void eat();
注意點
//假設Person是一個抽象類
//Person中eat方法是抽象方法
//創建匿名子類,把抽象類的抽象方法給實現了
//使用多態將子類對象賦給父類的引用
Person p = new Person(){public void eat(){System.out.println("你要好好吃飯啊");
}
}
7.4 模板方法設計模式import java.time.format.TextStyle;
import javax.sound.midi.SysexMessage;
//模板方法設計模式
public class TemplateTest {public static void main(String[] args) {Template test = new SubTemplate();
test.spendTime();
}
}
//一個計算代碼運行時間的類模板
abstract class Template{public void spendTime(){long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("代碼運行的時間為"+(end - start));
}
public abstract void code();
}
class SubTemplate extends Template{@Override
public void code() {// TODO Auto-generated method stub
for(int i = 2;i<=1000;++i){boolean isPrime = true;
for(int j = 2;j<=Math.sqrt(i);++j){if((i%j==0)){isPrime = false;
}
}
if(isPrime){System.out.println(i);
}
}
}
}
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享文章:Java面向對象(下)-創新互聯
網站鏈接:http://vcdvsql.cn/article34/ceocse.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、域名注冊、虛擬主機、建站公司、關鍵詞優化、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯