Java Day7

接口實現(xiàn)回調(diào) 代理設計模式 數(shù)組

目的

1.掌握使用接口實現(xiàn)回調(diào)的方法
2.了解數(shù)組的各種方法命咐,以便在編寫程序過程中可以靈活使用

技術

1.創(chuàng)建一個簡易的閱讀界面甚纲,跳轉(zhuǎn)到設置界面設置字體顏色及大小后返回給界面
2.用接口實現(xiàn)回調(diào)方式
3.不可變數(shù)組String中常用方法
4.可變數(shù)組StringBuilder中常用方法

技術實現(xiàn)

1.普通回調(diào)方式

  • 閱讀界面
/**
 * 閱讀界面 展示顯示的文本
 */
public class Read {
    private String text;
    private String color; //默認的顏色
    private int size; //默認的字體大小

    public Read(String text){
        this.text = text;
    }
    //模擬進入設置頁面
    public void goToSetting(){
        //1.創(chuàng)建設置頁面的對象
        Setting setting = new Setting(this);

        //2.推送到這是頁面
        setting.startSetting();
    }
    //提供給外部一個方法 可以通過這個方法給我傳值
    public void change(String color,int size){
        System.out.println("改變前的顏色:"+this.color+"  大兴住:"+this.size);

        this.color = color;
        this.size = size;

        System.out.println("改變后的顏色:"+this.color+"  大小:"+this.size);
    }
}
  • 設置界面
**
 * 設置頁面 設置字體大小和顏色
 */
public class Setting {
    //記錄為誰設置顏色和大小  記錄下做完事情之后 將數(shù)據(jù)返回給誰
    Read r1;


    //創(chuàng)建對象的時候 就需要告訴我 你是誰
    public Setting(Read r1){
        this.r1 = r1;
    }

    //開始設置
 public void startSetting(){
     System.out.println("開始設置");
     System.out.println(".........");
     System.out.println("設置完畢 即將返回結(jié)果");

     //如果有可以訪問的屬性 直接通過屬性給值
     //比較少用  對象沒辦法第一時間知道自己需要的值有了
//     r1.color = "紅色";
//     r1.size = 18;

     //通過方法來回調(diào)
     r1.change("黑色",29);
 }
}
  • 主函數(shù)
 public static void main(String [] args){
Read read = new Read("text");
read.goToSetting();
    }
  • 運行結(jié)果
    QQ圖片20190813184831.png

2.接口實現(xiàn)回調(diào)

  • 設置界面

public class Setting {
//   Read r1;
//   Chat c1;
//    public Setting(Read r1){
//        this.r1 = r1;
//    }
//    public Setting(Chat c1){
//        this.c1 = c1;
//    }

//    Object obj;

    FontSettinginterface obj;

    public Setting(FontSettinginterface obj){
        this.obj = obj;
    }

    interface FontSettinginterface{
        void change(String color,int size);
    }

    public void startSetting(){
        System.out.println("開始設置");
        System.out.println("........");
        System.out.println("設置完畢");

//        if(r1 != null){
//            r1.change("黑色",23);
//        }
//       if(c1 != null){
//            c1.change1("白色",25);
//        }

//        if(obj instanceof Read){
//            Read r1 = (Read)obj;
//            r1.change("黑色",23);
//        }
//        if(obj instanceof Chat){
//            Chat c1 = (Chat)obj;
//            c1.change1("白色",25);
//        }

        obj.change("黑色",29);

    }
}
  • 閱讀界面

public class Read implements Setting.FontSettinginterface {
    private String text;
    private String color;
    private int size;

    public Read(String text) {
        this.text = text;
    }

    public void goToSetting() {
        Setting setting = new Setting(this);
        setting.startSetting();
    }

    public void change(String color, int size) {
        this.color = color;
        this.size = size;

        System.out.println("顏色:" + color + "  大杏:" + size);
    }

}
  • 聊天界面

public class Chat implements Setting.FontSettinginterface {
   private String color;
   private int size;

    public void goToSetting(){
        Setting setting = new Setting(this);
        setting.startSetting();
    }
    public void change1(String color,int size){
        this.color = color;
        this.size = size;

        System.out.println("顏色:"+color+"  大星骛:"+size);
    }

    @Override
    public void change(String color, int size) {
        this.color = color;
        this.size = size;

        System.out.println("顏色:" + color + "  大小:" + size);
    }
}
  • 主函數(shù)
 public static void main(String[] args){
        Read read = new Read("df");
        read.goToSetting();

        Chat chat = new Chat();
        chat.goToSetting();
    }
  • 運行結(jié)果
    QQ圖片20190813185340.png
  • 不可變數(shù)組String中常用方法
  String str1 = "abc";
        String str2 = "abc";

        System.out.println(str1 == str2);
        System.out.println(str1.equals(str2));

        //使用構(gòu)造方法
        //null 和 "" 的區(qū)別
        String str3 = new String();  //無意義

        byte[] name = {'a','b','c'};
        String str4 = new String(name);
        System.out.println(str4);

        byte[] name2 = {97,98,99};
        String str5 = new String(name2);
        System.out.println(str5);

        //使用字節(jié)數(shù)組的一部分  創(chuàng)建一個字符串
        String str6 = new String(name,0,2);
        System.out.println(str6);

        char[] hello = {'你','好','啊'};
        String h = new String(hello);
        System.out.println(h);

        //字符串有哪些方法
        //獲取字符串中的一個字符
        //charAt
        char c = h.charAt(2);
        System.out.println(c);

        // 兩個字符串的比較  compareTo
        // 可以知道大小關系 0:相同  >0:大于  <0:小于
         int result = str4.compareTo(str5);
         System.out.println(result);

         // 兩個字符串的連接
         // concat
        String nStr = str5.concat(h);
        System.out.println(nStr);

        // 判斷一個字符串是否包含另外一個字符串
        // contains
        boolean r = "hello".contains("ll");
        System.out.println(r);

        String url = "http://www.baidu.com";
        if (url.endsWith(".com")){
            System.out.println("網(wǎng)址");
        }
        if (url.startsWith("http")){
            System.out.println("http協(xié)議");
        }
        if (url.startsWith("www",7)){
            System.out.println("萬維網(wǎng)");
        }

        // 兩個字符串進行比較
        // equals
        if ("abc".equals("ABC")){
            System.out.println("相同");
        }else {
            System.out.println("不相同");
        }
System.out.println(str4.hashCode());

        // 判斷一個子字符串在另外一個字符串里面的位置
        // indexOf   不存在返回值為-1
        String i1 = "hello Java";
        int index = i1.indexOf("Java");
        System.out.println(index);

        //獲取字符串的長度
        //length

        // 獲取子字符串
        // substring      從index到結(jié)尾
        String sStr = i1.substring(6);
        System.out.println(sStr);

        // 從0 到 5
        String sStr1 = i1.substring(0,5);
        System.out.println(sStr1);

        // 將字符串轉(zhuǎn)化為字符數(shù)組
        // toCharArray

        // 將所有字符轉(zhuǎn)化為小寫/ 大寫
        // toLowerCase/  toUpperCase

        // 將字符串前面和后面的空格字符刪除
        // trim();
  • 可變數(shù)組StringBuilder中的常用方法
 // 可變字符串
        // StringBuffer  線程安全    效率不高
        // StringBuilder  線程不安全的  效率更高
        // insert  append  delete  replace

        // 創(chuàng)建的同時先準備好6個字符的空間
        StringBuilder sb = new StringBuilder(6);

        // append  在末尾追加一個字符串炕贵;
        sb.append("I");
        sb.append(" Love");
        sb.append(" Android");
        System.out.println(sb);

        sb.insert(2,"also ");
        System.out.println(sb);

        // replace 替換
        int start = sb.indexOf("Android");
        int end = start + "Android".length();
        sb.replace(start,end,"You!!!");
        System.out.println(sb);

        //  reverse 反轉(zhuǎn)
//        sb.reverse();
//        System.out.println(sb);

        int s1 = sb.indexOf("also");
        int s2 = s1+"alse".length();
        sb.delete(s1,s2);
        System.out.println(sb);
    }
}

心得

通過今天的學習梆奈,我對接口和數(shù)組有了更深的理解,昨天我對于接口還是懵的狀態(tài)称开,今天總算是弄明白了一些亩钟,雖說還不是特別清晰,但已經(jīng)能夠簡單運用鳖轰。每天進步一點點清酥,也是很開心的事。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蕴侣,一起剝皮案震驚了整個濱河市焰轻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昆雀,老刑警劉巖辱志,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異狞膘,居然都是意外死亡揩懒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門挽封,熙熙樓的掌柜王于貴愁眉苦臉地迎上來已球,“玉大人,你說我怎么就攤上這事辅愿≈橇粒” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵渠缕,是天一觀的道長鸽素。 經(jīng)常有香客問我,道長亦鳞,這世上最難降的妖魔是什么馍忽? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮燕差,結(jié)果婚禮上遭笋,老公的妹妹穿的比我還像新娘。我一直安慰自己徒探,他們只是感情好瓦呼,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著测暗,像睡著了一般央串。 火紅的嫁衣襯著肌膚如雪磨澡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天质和,我揣著相機與錄音稳摄,去河邊找鬼。 笑死饲宿,一個胖子當著我的面吹牛厦酬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘫想,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼仗阅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了国夜?” 一聲冷哼從身側(cè)響起减噪,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎车吹,沒想到半個月后旋廷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡礼搁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了目尖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馒吴。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瑟曲,靈堂內(nèi)的尸體忽然破棺而出饮戳,到底是詐尸還是另有隱情,我是刑警寧澤洞拨,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布扯罐,位于F島的核電站,受9級特大地震影響烦衣,放射性物質(zhì)發(fā)生泄漏歹河。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一花吟、第九天 我趴在偏房一處隱蔽的房頂上張望秸歧。 院中可真熱鬧,春花似錦衅澈、人聲如沸键菱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽经备。三九已至拭抬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侵蒙,已是汗流浹背造虎。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蘑志,地道東北人累奈。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像急但,于是被迫代替她去往敵國和親澎媒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,103評論 1 32
  • Java 數(shù)組 1, 數(shù)組是有序數(shù)據(jù)的集合, 數(shù)組中的每個元素具有相同的數(shù)組名和下標來做唯一標識 數(shù)組聲明形式: ...
    o0寳貝閱讀 185評論 0 0
  • java 接口的意義-百度 規(guī)范波桩、擴展戒努、回調(diào) 抽象類的意義-樂視 為其子類提供一個公共的類型封裝子類中得重復內(nèi)容定...
    交流電1582閱讀 2,231評論 0 11
  • 接口本身也能有屬性,變量镐躲,但是不能有實例屬性 接口中 的屬性 默認加了三個關鍵字(public储玫,static,f...
    慘不忍睹閱讀 144評論 0 0
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程萤皂,因...
    小菜c閱讀 6,426評論 0 17