Java面向?qū)ο?/h1>

一,需要掌握:

1,會(huì)創(chuàng)建類(lèi)和對(duì)象
2.面向?qū)ο蟮娜筇卣?封裝,繼承,多態(tài).
3.掌握抽象類(lèi)和接口的使用
4.掌握程序中的異常處理
5.會(huì)使用面向?qū)ο笏枷脒M(jìn)行編程

二.開(kāi)發(fā)方法

1.結(jié)構(gòu)化開(kāi)發(fā)(基于c語(yǔ)言)

面向功能劃分軟件結(jié)構(gòu)
自頂而下
最小的子系統(tǒng)是方法
制約了軟件的可維護(hù)性和可擴(kuò)展性

2.面向?qū)ο箝_(kāi)發(fā)

把軟件系統(tǒng)看成各種對(duì)象的集合
系統(tǒng)結(jié)構(gòu)較穩(wěn)定
子系統(tǒng)相對(duì)獨(dú)立
軟件可重用性,可維護(hù)性和可擴(kuò)展性強(qiáng)

三.類(lèi)與對(duì)象

對(duì)象:用來(lái)描述客觀(guān)事物的一個(gè)實(shí)體,由一組屬性和方法構(gòu)成
類(lèi):具有相同屬性和方法的一組對(duì)象的集合
類(lèi)是對(duì)象的抽象,對(duì)象是類(lèi)的具體

public class person {
    //屬性(特征):成員變量
    public String name;
    public int age;
    public char sex;
    
    //方法(行為):成員方法
    public String showInfo() {
        String info = "我叫:"+name+";"+age+"歲;性別"+sex;
        return info;    
    }
}
public class TestPerson {
    public static void main(String[] args) {
        //創(chuàng)建對(duì)象:   類(lèi)名   對(duì)象名 = new  類(lèi)名();
        person p1 = new person();
        //使用對(duì)象的屬性和方法:對(duì)象名.屬性     對(duì)象名.方法()
        p1.name = "jack";
        p1.age = 18;
        p1.sex = '男';
        
        String s1 = p1.showInfo();
        System.out.println(s1);
        
        
        person p2 = new person();
        p2.name = "rose";
        p2.age = 16;
        p2.sex = '女';
        
        String s2 = p2.showInfo();
        System.out.println(s2); 
    }
}

注意

方法定義處,參數(shù)叫做形式參數(shù),也叫形參(主要約束參數(shù)的類(lèi)型的)
形參名字可以隨便取,但要符合駝峰命名規(guī)則,同時(shí)要有意義
方法調(diào)用處,參數(shù)叫做實(shí)際參數(shù),也叫實(shí)參
實(shí)參名字可以隨便取,但要符合駝峰命名規(guī)則,同時(shí)要有意義
實(shí)參和形參的類(lèi)型必須一致,名字可以一致,也可以不一致
方法有沒(méi)有返回值和方法有沒(méi)有參數(shù),沒(méi)有任何關(guān)系
方法參數(shù)可以有一個(gè),也可以有多個(gè),多個(gè)參數(shù)之間用逗號(hào)隔開(kāi)
形參和實(shí)參數(shù)量一定要一致,數(shù)據(jù)類(lèi)型一定要一致

四.構(gòu)造方法與方法重載

當(dāng)參數(shù)傳遞為基本數(shù)據(jù)類(lèi)型時(shí),參數(shù)變化不保留,基本數(shù)據(jù)類(lèi)型參數(shù)傳值
當(dāng)參數(shù)傳遞為引用數(shù)據(jù)類(lèi)型時(shí),參數(shù)變化保留,引用數(shù)據(jù)類(lèi)型參數(shù)傳址
方法重載:
同一個(gè)類(lèi)中
方法名相同
參數(shù)個(gè)數(shù)或類(lèi)型不同
與返回值,訪(fǎng)問(wèn)修飾符無(wú)關(guān)
構(gòu)造方法:
(1)該方法缺少返回值
(2)該方法名字必須和類(lèi)名一樣
每個(gè)類(lèi)都有一個(gè)默認(rèn)無(wú)參構(gòu)造方法
但是,一旦手工添加了帶參構(gòu)造方法,那么系統(tǒng)默認(rèn)的無(wú)參構(gòu)造方法就會(huì)被覆蓋掉,如果想使用,就必須顯示的寫(xiě)出來(lái)

public class Student {
    String name;
    int score;
    //一個(gè)類(lèi)中允許出現(xiàn)多個(gè)同名但不同參數(shù)的方法,這種方法叫做重載
    
    //構(gòu)造方法
    //(1)該方法缺少返回值  (2)該方法名字必須和類(lèi)名一樣
    //每個(gè)類(lèi)都有一個(gè)默認(rèn)無(wú)參構(gòu)造方法
    //但是,一旦手工添加了帶參構(gòu)造方法,那么系統(tǒng)默認(rèn)的無(wú)參構(gòu)造方法就會(huì)被覆蓋掉,如果想使用,就必須顯示的寫(xiě)出來(lái)

    //方法重載
    public Student() {
        
    }
    
    public Student(String name,int score) {
        this.name = name;
        this.score = score;
    }
    public void showInfo() {
        System.out.println(name+"的成績(jī)是"+score);
    }

}
public class ModifyScore {
    public void modifyScore(Student[] stus) {
        for(int i=0; i<stus.length;i++) {
            if(stus[i].score<60) {
                stus[i].score+=2;
            }
        }
    }
    public void showInfo(Student[] stus) {
        for(Student stu:stus) {
            stu.showInfo();
        }
    }

    public static void main(String[] args) {
        // TODO 自動(dòng)生成的方法存根
        ModifyScore ms = new ModifyScore();
        Student[] stus = new Student[3];
        
        /*Student s1 = new Student();
        s1.name = "jack";
        s1.score = 58;*/
        
        Student s1 = new Student("jack",58);
        
        /*Student s2 = new Student();
        s2.name = "rose";
        s2.score = 98;*/
        
        Student s2 = new Student("rose",98);
        
        Student s3 = new Student();
        s3.name = "mandy";
        s3.score = 68;
        
        stus[0] = s1;
        stus[1] = s2;
        stus[2] = s3;
        
        ms.modifyScore(stus);
        ms.showInfo(stus);
    }
}

五.封裝

1.成員變量與局部變量的區(qū)別:
作用域不同:
局部變量的作用域僅限于定義它的方法
成員變量的作用域在整個(gè)類(lèi)內(nèi)部都是可見(jiàn)的
初始值不同:
Java會(huì)給成員變量一個(gè)初始值
Java不會(huì)給局部變量賦予初始值
注意:
在同一個(gè)方法中,不允許有同名局部變量
在不同方法中,可以有同名局部變量
在同一個(gè)類(lèi)中,成員變量和局部變量同名時(shí),局部變量具有更高的優(yōu)先級(jí)

面向?qū)ο笕筇卣髦? ------封裝
2.封裝的概念:
將類(lèi)的某些信息隱藏在類(lèi)內(nèi)部,不允許外部程序直接訪(fǎng)問(wèn),而是通過(guò)該類(lèi)提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪(fǎng)問(wèn)
封裝的兩個(gè)大致原則:
把盡可能多的東西藏起來(lái),對(duì)外提供便捷的接口
把所有的屬性藏起來(lái)

3.封裝:
1.先將屬性私有化
2.為private的屬性創(chuàng)建共有的setter/getter方法
3.在getter/setter方法中加入屬性控制語(yǔ)句

4.封裝的好處:
1.便于使用者正確使用系統(tǒng),防止錯(cuò)誤修改屬性
2.有助于系統(tǒng)之間的松耦合,提高系統(tǒng)的獨(dú)立性
3.提高軟件的可重用性
4.降低了構(gòu)建大型系統(tǒng)的風(fēng)險(xiǎn)

六.繼承

1.類(lèi)的訪(fǎng)問(wèn)修飾
public修飾符:共有訪(fǎng)問(wèn)級(jí)別
默認(rèn)修飾符:包級(jí)私有訪(fǎng)問(wèn)級(jí)別

image.png

2.static變量
1.類(lèi)的成員變量包括
類(lèi)變量(靜態(tài)變量):
被static修飾的變量
在內(nèi)存中只有一個(gè)拷貝
類(lèi)內(nèi)部,可在任何方法內(nèi)直接訪(fǎng)問(wèn)靜態(tài)變量
其他類(lèi)中,可以直接通過(guò)類(lèi)名訪(fǎng)問(wèn)
實(shí)例變量:
沒(méi)有被static修飾的變量
每創(chuàng)建一個(gè)實(shí)例,就會(huì)為實(shí)例變量分配一次內(nèi)存,實(shí)例變量可以在內(nèi)存中有多個(gè)拷貝,互不影響
2.static變量的作用:
(1)能被類(lèi)的所有實(shí)例共享,可作為實(shí)例之間進(jìn)行交流的共享數(shù)據(jù)
(2)如果類(lèi)的所有實(shí)例都包含一個(gè)相同的常量屬性,可把這個(gè)屬性定義為靜態(tài)常量類(lèi)型,從而節(jié)省內(nèi)存空間
3.static方法:
靜態(tài)方法:可直接通過(guò)類(lèi)名訪(fǎng)問(wèn)
靜態(tài)方法中不能使用this和super
不能直接訪(fǎng)問(wèn)所屬類(lèi)的實(shí)例變量和實(shí)例方法
可直接訪(fǎng)問(wèn)類(lèi)的靜態(tài)變量和靜態(tài)方法
實(shí)例方法:通過(guò)實(shí)例訪(fǎng)問(wèn)
可直接訪(fǎng)問(wèn)所屬類(lèi)的靜態(tài)變量,靜態(tài)方法,實(shí)例變量和實(shí)例方法
靜態(tài)方法必須被實(shí)現(xiàn) main()就是最常用的靜態(tài)方法

//模擬實(shí)現(xiàn)選民投票過(guò)程:一群選民進(jìn)行投票,每個(gè)選民只允許投一次,   并且當(dāng)投票總數(shù)達(dá)到100時(shí),停止投票
public class Voter {
    //投票總數(shù),所有選民都會(huì)改變的同一個(gè)數(shù)據(jù)  static
    public static int count;
    //100,最大投票數(shù),適用于全部的所有選民,static final
    public static final int MAX_COUNT = 100;
    
    private String name;
    //帶參構(gòu)造方法
    public Voter(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public void voteFor() {
        
        if(count == MAX_COUNT) {
            System.out.println("投票結(jié)束");
            return;
        }else {
            count++;
        }
        System.out.println(this.name+",感謝您的投票!");
    }
    public static void printResult() {
        System.out.println("選民總數(shù)是:"+count);
    }
}
public class TestVoter {

    public static void main(String[] args) {
        // TODO 自動(dòng)生成的方法存根
        Voter lisa = new Voter("lisa");
        lisa.voteFor();
        Voter.printResult();
        for(int i = 1;i <=99;i++) {
            Voter v = new Voter("v"+i);
            v.voteFor();
        }
        Voter.printResult();
        Voter rose = new Voter("rose");
        rose.voteFor();
        Voter.printResult();
    }
}

方法重寫(xiě)
1.子類(lèi)繼承父類(lèi)的什么?
繼承public和protected 修飾的屬性和方法,不管子類(lèi)和父類(lèi)是否在同一個(gè)包中
繼承默認(rèn)權(quán)限修飾符修飾的屬性和方法,子類(lèi)和父類(lèi)必須在同一個(gè)包中
2.不能被繼承的父類(lèi)成員
private成員
子類(lèi)與父類(lèi)不在同包,使用默認(rèn)訪(fǎng)問(wèn)權(quán)限的成員
構(gòu)造方法
3.子類(lèi)訪(fǎng)問(wèn)父類(lèi)成員
訪(fǎng)問(wèn)父類(lèi)構(gòu)造方法
super();
super(name);
訪(fǎng)問(wèn)父類(lèi)屬性
super.name;
訪(fǎng)問(wèn)父類(lèi)方法
super.print();
注意:
(1)使用super關(guān)鍵字,super代表父類(lèi)對(duì)象
(2)super只能出現(xiàn)在子類(lèi)的方法和構(gòu)造方法中
(3)super調(diào)用構(gòu)造方法時(shí),只能是第一句
(4)super不能訪(fǎng)問(wèn)父類(lèi)的private成員
4.繼承條件下的構(gòu)造方法
繼承條件下構(gòu)造方法的調(diào)用規(guī)則
子類(lèi)構(gòu)造方法沒(méi)有通過(guò)super顯示調(diào)用父類(lèi)的有參構(gòu)造方法,系統(tǒng)默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造方法
子類(lèi)構(gòu)造方法通過(guò)super顯示調(diào)用父類(lèi)的有參構(gòu)造方法,執(zhí)行相應(yīng)構(gòu)造方法,而不執(zhí)行父類(lèi)無(wú)參構(gòu)造方法
5.方法重寫(xiě)規(guī)則:
方法名相同
參數(shù)列表相同
返回值類(lèi)型相同或者是其子類(lèi)
訪(fǎng)問(wèn)權(quán)限不能?chē)?yán)于父類(lèi)
父類(lèi)的靜態(tài)方法不能被子類(lèi)覆蓋為非靜態(tài)方法,父類(lèi)的非靜態(tài)方法也不能被子類(lèi)覆蓋為靜態(tài)方法
子類(lèi)可以定義與父類(lèi)同名的靜態(tài)方法,以便在子類(lèi)中隱藏父類(lèi)的靜態(tài)方法(注:靜態(tài)方法中無(wú)法使用super,通過(guò)類(lèi)名調(diào)用)
父類(lèi)的私有方法不能被子類(lèi)覆蓋
不能拋出比父類(lèi)方法更多的異常
6.方法重寫(xiě)vs方法重載

image.png

Object類(lèi)
Object類(lèi)是所有類(lèi)的直接或間接父類(lèi)
equals()方法
Object類(lèi)的equals()方法
-比較兩個(gè)對(duì)象是否是同一個(gè)對(duì)象,是則返回true
--操作符==
簡(jiǎn)單數(shù)據(jù)類(lèi)型,直接比較值.如1==2
引用類(lèi)型,比較兩者是否為同一對(duì)象
1.單根繼承
Java只支持單根繼承
一個(gè)類(lèi)只能有一個(gè)直接父類(lèi)
一個(gè)類(lèi)可以有多個(gè)間接父類(lèi)
super和this
image.png

七.多態(tài)

1.instanceof用于判斷一個(gè)引用類(lèi)型所引用的對(duì)象是否是一個(gè)類(lèi)的實(shí)例

有抽象方法的類(lèi)一定是抽象類(lèi)
抽象類(lèi)就一定有抽象方法嗎?不一定
抽象類(lèi)不能實(shí)例化 Pet pet = new Pet();
抽象類(lèi)的子類(lèi)可以是普通類(lèi),該普通類(lèi)要實(shí)現(xiàn)抽象類(lèi)中的抽象方法
抽象類(lèi)的子類(lèi)也可以是抽象類(lèi),此時(shí),父類(lèi)中的抽象方法可以在子類(lèi)中不被實(shí)現(xiàn)

2.向上轉(zhuǎn)型

  • 向上轉(zhuǎn)型:父類(lèi)的引用指向子類(lèi)對(duì)象.自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換
  • Pet pet = new Dog();
  • <父類(lèi)型> <引用變量名> = new <子類(lèi)型> ();
  • 此時(shí)通過(guò)父類(lèi)引用變量調(diào)用的方法是子類(lèi)覆蓋或繼承父類(lèi)的方法,不是父類(lèi)的方法.
  • 此時(shí)通過(guò)父類(lèi)引用變量無(wú)法調(diào)用子類(lèi)特有的方法
    3.向下轉(zhuǎn)型
    如果需要調(diào)用子類(lèi)特有的方法?
    向下轉(zhuǎn)型: 將一個(gè)指向子類(lèi)對(duì)象的父類(lèi)引用賦給一個(gè)子類(lèi)的引用,即:父類(lèi)類(lèi)型轉(zhuǎn)換為子類(lèi)類(lèi)型.需強(qiáng)制類(lèi)型轉(zhuǎn)換
    Dog dog = (Dog) pet; // 將pet轉(zhuǎn)換為Dog類(lèi)型
  • <子類(lèi)型> <引用變量名> = (<子類(lèi)型>) <父類(lèi)型的引用變量>;
  • 在向下轉(zhuǎn)型的過(guò)程中,如果煤油轉(zhuǎn)換為真實(shí)子類(lèi)類(lèi)型,會(huì)出現(xiàn)類(lèi)型轉(zhuǎn)換異常
    類(lèi)型轉(zhuǎn)換異常:
    image.png

    4.instanceof
    如何減少在向下轉(zhuǎn)型的過(guò)程中,沒(méi)有轉(zhuǎn)換為真實(shí)子類(lèi)類(lèi)型的轉(zhuǎn)換異常?
  • Java中提供了instanceof運(yùn)算符來(lái)進(jìn)行類(lèi)型的判斷
    注意
  • 使用instanceof時(shí),對(duì)象的類(lèi)型必須和instanceof后面的參數(shù)所指定的類(lèi)在繼承上有上下級(jí)關(guān)系
Pet  dog= new  Dog();
if (dog instanceof  Dog) {
Dog d = (Dog) dog;
d.catchFly();
}else  if (dog  instanceof  Penguin){
Penguin  p = (Penguin)  dog;
p.swim();
}

八.抽象類(lèi)與接口

1.抽象類(lèi)與抽象方法
public abstract class Pet { // 抽象類(lèi)
public abstract void toHospital(); // 抽象方法
}

  • 抽象類(lèi)VS普通類(lèi)
    抽象類(lèi)不能被實(shí)例化
    但可以創(chuàng)建一個(gè)引用變量,其類(lèi)型是一個(gè)抽象類(lèi),指向非抽象的子類(lèi)實(shí)例
    普通類(lèi)可以被實(shí)例化
  • 抽象方法VS普通方法
    有無(wú)方法體
  • 抽象類(lèi)與抽象方法的使用抽象類(lèi)中可以沒(méi)有抽象方法,但包含了抽象方法的類(lèi)必須被定義為抽象類(lèi)
    如果子類(lèi)沒(méi)有實(shí)現(xiàn)父類(lèi)的所有抽象方法,子類(lèi)必須被定義為抽象類(lèi)
    沒(méi)有抽象構(gòu)造方法,也沒(méi)有抽象靜態(tài)方法
    抽象類(lèi)中可以有非抽象的構(gòu)造方法,創(chuàng)建子類(lèi)的實(shí)例時(shí)可能調(diào)用

2.接口

image.png

接口特性:

  • 接口中的成員變量
    默認(rèn)都是public static final(靜態(tài)常量 )的,必須顯示初始化
  • 接口中的方法
    默認(rèn)都是public abstract的
    除了成員遍量和方法,不能包含其他
    實(shí)現(xiàn)類(lèi)必須實(shí)現(xiàn)接口的所有方法
  • 接口中沒(méi)有狗造方法,不能被實(shí)例化
  • 一格接口不能實(shí)現(xiàn)另一個(gè)接口,但可以實(shí)現(xiàn)類(lèi)可以實(shí)現(xiàn)多個(gè)接口 (Java中的多繼承)
  • implements, 多個(gè)接口使用逗號(hào)隔開(kāi)

示例:防盜門(mén)功能

image.png

閱讀代碼 找出錯(cuò)誤:

image.png

1.不能有構(gòu)造方法
3.不能有普通方法'
4.應(yīng)是public, 不能private私有化;
3.抽象類(lèi)vs接口

  • 相同點(diǎn):
    代表系統(tǒng)的抽象層
    都不能被實(shí)例化
    都能包含抽象方法(用于描述系統(tǒng)提供的服務(wù),不必提供具體實(shí)現(xiàn))
  • 不同點(diǎn):
    在抽象類(lèi)中可以為部分方法提供默認(rèn)實(shí)現(xiàn),而接口中只能包含抽象方法
    一個(gè)類(lèi)只能繼承一個(gè)直接的父類(lèi),但可以實(shí)現(xiàn)多個(gè)接口
    已存在的繼承樹(shù),可以方便的抽取接口,但是抽取抽象類(lèi)不容易
  • 使用原則:
    接口做系統(tǒng)與外界交互的窗口(接口提供服務(wù))
    接口本身一旦制定,就不允許隨意修改
    抽象類(lèi)可完成部分功能實(shí)現(xiàn),還有部分功能可作為系統(tǒng)的擴(kuò)展點(diǎn)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子禁偎,更是在濱河造成了極大的恐慌淮逻,老刑警劉巖塞俱,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件飞涂,死亡現(xiàn)場(chǎng)離奇詭異恩沛,居然都是意外死亡枣耀,警方通過(guò)查閱死者的電腦和手機(jī)霉晕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人牺堰,你說(shuō)我怎么就攤上這事拄轻。” “怎么了伟葫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵恨搓,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我筏养,道長(zhǎng)斧抱,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任渐溶,我火速辦了婚禮夺姑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掌猛。我一直安慰自己叙凡,他們只是感情好逸吵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般关噪。 火紅的嫁衣襯著肌膚如雪昭伸。 梳的紋絲不亂的頭發(fā)上适秩,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天巍佑,我揣著相機(jī)與錄音,去河邊找鬼孔飒。 笑死灌闺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坏瞄。 我是一名探鬼主播桂对,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鸠匀!你這毒婦竟也來(lái)了蕉斜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缀棍,失蹤者是張志新(化名)和其女友劉穎宅此,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體爬范,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡父腕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了青瀑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片璧亮。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痢法,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杜顺,到底是詐尸還是另有隱情,我是刑警寧澤蘸炸,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布躬络,位于F島的核電站,受9級(jí)特大地震影響搭儒,放射性物質(zhì)發(fā)生泄漏穷当。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一淹禾、第九天 我趴在偏房一處隱蔽的房頂上張望馁菜。 院中可真熱鬧,春花似錦铃岔、人聲如沸汪疮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)智嚷。三九已至,卻和暖如春纺且,著一層夾襖步出監(jiān)牢的瞬間盏道,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工载碌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猜嘱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓嫁艇,卻偏偏與公主長(zhǎng)得像朗伶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子步咪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355