天天看點

【java基礎】第14天——eclipse應用、修飾符、局部與成員變量、自定義資料類型使用(抽象類、接口類)

今日内容介紹

1、Eclipse常用快捷鍵操作

2、Eclipse文檔注釋導出幫助文檔

3、Eclipse項目的jar包導出與使用jar包

4、不同修飾符混合使用細節

5、辨析何時定義變量為成員變量

6、類、抽象類、接口作為方法參數

7、類、抽象類、接口作為方法傳回值

第1章 Eclipse的應用

01 day14_01(面向對象)eclipse快捷鍵.avi(14:33)

02 day14_02(面向對象)java中的文檔注釋和制作.avi(15:08)

03 day14_03(面向對象)eclipse生成jar包(08:37)

04 day14_04(面向對象)JAVA_HOME配置.avi(03:27)

05 day14_05(面向對象)導入jar包.avi(12:13)

第2章 面向對象

06 day14_07(面向對象)類中的修飾符(09:33)

07 day14_08(面向對象)局部變量和成員變量解析(11:01)

第3章 自定義資料類型的使用

08 day14_09(面向對象)類作為方法的參數(08:12)

09 day14_10(面向對象)類作為方法的傳回值(07:50)

10 day14_11(面向對象)抽象類作為方法的參數(10:37)

11 day14_12(面向對象)抽象類作為方法的傳回值(09:24)

12 day14_13(面向對象)抽象類作為方法的傳回值_1(01:53)

13 day14_14(面向對象)接口作為方法的參數(05:55)

14 day14_15(面向對象)接口作為方法的參數_常量調用(03:31)

15 day14_16(面向對象)接口作為方法的傳回值(03:33)

16 day14_17(面向對象)抽象類作為方法傳回值的案例(09:31)

第三節課 星級酒店案例

17 day14_18(面向對象)酒店案例分析(09:12)

18 day14_19(面向對象)酒店案例功能實作(14:57)

============上面的内容,友善我們隻做ppt,word教案以及書寫下面的簡要的筆記=================

=======================第一節課開始=============================================

01eclipse快捷鍵

* A:   Ctrl+T:檢視所選中類的繼承樹
    例如,在下面代碼中,選中Teacher類名,然後按Ctrl+T,就會顯示出Teacher類的繼承關系

* B:   檢視所選中方法的源代碼
    Ctrl+滑動滑鼠點選方法名,或者選中方法名後,按F3鍵檢視所選中方法的源代碼。      

02java中的文檔注釋和制作

* A: 在eclipse使用時,可以配合文檔注釋,導出對類的說明文檔,進而供其         他人閱讀學習與使用。
    通過使用文檔注釋,将類或者方法進行注釋用@簡單标注基本資訊。如@author 作者、@version代碼版本、@param方法參數、@return方法傳回值等。      

03eclipse生成jar包

04JAVA_HOME配置

05導入jar包

* A:   導入jar包:即把指定的jar包,加入到指項目中,提供給項目使用。
    導入jar包的過程是将jar包加入到項目的.classpath檔案中去,讓項目識别,便可以使用jar包中所有的.class檔案類。
    以下是加入步驟:
    1:項目根檔案夾下建立lib檔案夾,用于同一管理所有的jar檔案
    2:把jar檔案複制到lib檔案夾中
    3:右鍵點選jar檔案,點選Build Path,選擇Add to Build Path,此時檢視項目根檔案夾下的.classpath檔案,發現新加入的jar包路徑被配置到了該檔案中。說明可以使用jar包中所有類了。

注意:
    Jar包加入後,必須Add to Build Path才能使用
    Jar包加入後,加入的類也必須導包,如果加入的類其包名與現有類包名相同,則視作在同一個包下。(不常見)      

==============================第二節課開始====================================

07不同修飾符使用細節

A: 常用來修飾類、方法、變量的修飾符如下:
   public 權限修飾符,公共通路, 類,方法,成員變量
   protected 權限修飾符,受保護通路, 方法,成員變量
   預設什麼也不寫 也是一種權限修飾符,預設通路, 類,方法,成員變量
   private 權限修飾符,私有通路, 方法,成員變量
   static 靜态修飾符  方法,成員變量
   final 最終修飾符   類,方法,成員變量,局部變量
   abstract 抽象修飾符  類 ,方法

B: 不能同時使用的修飾符
    同時,abstract與private不能同時使用;
    同時,abstract與static不能同時使用;
    同時,abstract與final不能同時使用。      

 C: 修飾類能夠使用的修飾符:

修飾類隻能使用public、預設的、final、abstract關鍵字

使用最多的是 public關鍵字

a:代碼案例
        public class Demo {} //最常用的方式
        class Demo2{}
        public final class Demo3{}
        public abstract class Demo4{}

D:修飾成員變量能夠使用的修飾符:
    public : 公共的
    protected : 受保護的
        : 預設的
    private :私有的
    final : 最終的
    static : 靜态的
    使用最多的是 private

    a: 代碼案例
        public int count = 100;
        protected int count2 = 100;
        int count3 = 100;
        private int count4 = 100; //最常用的方式
        public final int count5 = 100;
        public static int count6 = 100;      

 E:修飾構造方法能夠使用的修飾符:

public : 公共的

protected : 受保護的

: 預設的

private :私有的

使用最多的是 public

a:代碼案例
        public Demo(){} //最常用的方式
        protected Demo(){}
        Demo(){}
        private Demo(){}

       修飾成員方法能夠使用的修飾符:
            public : 公共的
            protected : 受保護的
                : 預設的
            private :私有的
            final : 最終的
            static : 靜态的
            abstract : 抽象的
            使用最多的是 public
        public void method1(){}//最常用的方式
        protected void method2(){}
        void method3(){}
        private void method4(){}
        public final void method5(){}
        public static void method6(){}//最常用的方式
        public abstract void method7();//最常用的方式      

07局部變量和成員變量解析

* A:程式編譯
       數學工具類
public class MathTool {
    //求兩個數的和的二倍
    public double sum2times(int number,int number2) {
        return (number+number2)*2;
    }
    //求兩個數的積
    public double area(int number,int number2) {
        return number*number2;
    }
}      

 長方形類

public class CFX {

//因為長與寬,在現實事物中屬于事物的一部分,是以定義成員變量

private int chang;

private int kuan;

public CFX(int chang, int kuan) {
        this.chang = chang;
        this.kuan = kuan;
    }

    //求長與寬的周長
    public double zhouChang() {
        return (chang+kuan)*2;
    }
    //求長與寬的面積
    public double mianJi() {
        return chang*kuan;
    }
    public int getChang() {
        return chang;
    }
    public void setChang(int chang) {
        this.chang = chang;
    }
    public int getKuan() {
        return kuan;
    }
    public void setKuan(int kuan) {
        this.kuan = kuan;
    }
}      

08類作為方法的參數

* A:   類作為方法參數
    在編寫程式中,會經常碰到調用的方法要接收的是一個類類型的情況,那麼這時,要向方法中傳入該類的對象。

    如下代碼示範:
        class Person{
            public void show(){
                System.out.println("show方法執行了");
            }
        }
        //測試類
        public class Test {
            public static void main(String[] args) {
                //建立Person對象
                Person p = new Person();
                //調用method方法
                method(p);
            }

        //定義一個方法method,用來接收一個Person對象,在方法中調用Person對象的show方法
        public static void method(Person p){
            p.show();
        }      

09抽象類作為方法參數與傳回值

* A:   抽象類作為方法參數
    今後開發中,抽象類作為方法參數的情況也很多見。當遇到方法參數為抽象類類型時,要傳入一個實作抽象類所有抽象方法的子類對象。如下代碼示範:
    //抽象類
    abstract class Person{
        public abstract void show();
    }
    class Student extends Person{
        @Override
        public void show() {
            System.out.println("重寫了show方法");
        }
    }
    //測試類
    public class Test {
        public static void main(String[] args) {
            //通過多态的方式,建立一個Person類型的變量,而這個對象實際是Student
            Person p = new Student();
            //調用method方法
            method(p);
        }

        //定義一個方法method,用來接收一個Person類型對象,在方法中調用Person對象的show方法
        public static void method(Person p){//抽象類作為參數
            //通過p變量調用show方法,這時實際調用的是Student對象中的show方法
            p.show();   
    }
    }


* B:   抽象類作為方法傳回值
    抽象類作為方法傳回值的情況,也是有的,這時需要傳回一個實作抽象類所有抽象方法的子類對象。如下代碼示範:
    //抽象類
    abstract class Person{
        public abstract void show();
    }
    class Student extends Person{
        @Override
        public void show() {
            System.out.println("重寫了show方法");
        }
    }
    //測試類
    public class Test {
        public static void main(String[] args) {
            //調用method方法,擷取傳回的Person對象
            Person p = method();
            //通過p變量調用show方法,這時實際調用的是Student對象中的show方法
            p.show();
        }

        //定義一個方法method,用來擷取一個Person對象,在方法中完成Person對象的建立
        public static Person method(){
            Person p = new Student();
            return p;
        }
    }      

10接口作為方法參數與傳回值

* A:   接口作為方法參數
    接口作為方法參數的情況是很常見的,經常會碰到。當遇到方法參數為接口類型時,那麼該方法要傳入一個接口實作類對象。如下代碼示範。
    //接口
    interface Smoke{
        public abstract void smoking();
    }
    class Student implements Smoke{
        @Override
        public void smoking() {
            System.out.println("課下吸口煙,賽過活神仙");
        }
    }
    //測試類
    public class Test {
        public static void main(String[] args) {
            //通過多态的方式,建立一個Smoke類型的變量,而這個對象實際是Student
            Smoke s = new Student();
            //調用method方法
            method(s);
        }

        //定義一個方法method,用來接收一個Smoke類型對象,在方法中調用Smoke對象的show方法
        public static void method(Smoke sm){//接口作為參數
            //通過sm變量調用smoking方法,這時實際調用的是Student對象中的smoking方法
            sm.smoking();
        }
    }

* B:   接口作為方法傳回值
    接口作為方法傳回值的情況,在後面的學習中會碰到。當遇到方法傳回值是接口類型時,那麼該方法需要傳回一個接口實作類對象。如下代碼示範。

    //接口
    interface Smoke{
        public abstract void smoking();
    }
    class Student implements Smoke{
        @Override
        public void smoking() {
            System.out.println("課下吸口煙,賽過活神仙");
        }
    }
    //測試類
    public class Test {
        public static void main(String[] args) {
            //調用method方法,擷取傳回的會吸煙的對象
            Smoke s = method();
            //通過s變量調用smoking方法,這時實際調用的是Student對象中的smoking方法
            s.smoking();
        }

        //定義一個方法method,用來擷取一個具備吸煙功能的對象,并在方法中完成吸煙者的建立
        public static Smoke method(){
            Smoke sm = new Student();
            return sm;
        }
    }      

==============================第三節課開始====================================

11星級酒店案例

* A:   根據“某五星級酒店,資金雄厚……都有自己的工作要做。”分析出,該題       目中包含酒店,可以把它封裝成類,多名員工)。

    class 員工 {
         屬性:姓名
    屬性:工号
    方法:工作
    }
    class 廚師 extends 員工{}
    class 服務員 extends 員工{}
    class 經理 extends 員工 {
         屬性:獎金
    }

    員工的類型有經理、廚師、服務員,它們有共同的屬性(姓名、工号、),經理額外屬性(獎金)。

       根據“向酒店中,增加多名員工(其中包含1名經理,1名廚師、2名服務員)”。分析出,要建立一個酒店對象,并添加4名員工到酒店對象的員工集合中。
    酒店員工集合添加新員工: 經理對象
    酒店員工集合添加新員工: 廚師對象
    酒店員工集合添加新員工: 服務員對象
    酒店員工集合添加新員工: 服務員對象

       根據“擷取酒店幸運員工”。分析出,從酒店員工集合随機得到一名員工對象。
    1. 從酒店員工集合長度範圍内,随機産生一個随機數
    2. 使用該随機數作為集合的索引,傳回該索引處對應的員工對象

       根據“酒店開設VIP服務,酒店的廚師與服務員可以提供VIP服務。(廚師做菜加量、服務員給顧客倒酒)”。分析出,這是要增加一個VIP的接口,接口中提供個VIP服務的方法。讓廚師與服務員實作該接口。
    interface VIP服務{
         抽象方法:服務
    }
    class 廚師 extends 員工 implements VIP服務{ 重寫服務方法 }
    class 服務員 extends 員工 implements VIP服務{ 重寫服務方法 }

B:
   VIP服務      

public interface VIP {

public abstract void server(); //服務

}

 員工

/*

* 員工:

姓名 String

工号 String

*/

public abstract class YuanGong {

// 成員變量

private String xingMing;

private String gongHao;

// 構造方法

public YuanGong() {

super();

}

public YuanGong(String xingMing, String gongHao) {

super();

this.xingMing = xingMing;

this.gongHao = gongHao;

}
// 抽象方法
public abstract void work();

// getters與setters
public String getXingMing() {
    return xingMing;
}
public void setXingMing(String xingMing) {
    this.xingMing = xingMing;
}
public String getGongHao() {
    return gongHao;
}
public void setGongHao(String gongHao) {
    this.gongHao = gongHao;
}      

}

 服務員

/*

* 定義員工的子類 服務員類

*/

public class FuWuYuan extends YuanGong implements VIP {

public FuWuYuan() {

super();

}

public FuWuYuan(String xingMing, String gongHao) {
    super(xingMing, gongHao);
}
@Override
public void work() {
    System.out.println("親,全身心為您服務,記得給好評哦");
}
@Override
public void server() {
    System.out.println("給顧客倒酒");
}      

}

 經理

/*

* 經理在員工的基礎上,添加了獎金成員

*/

public class JingLi extends YuanGong {

private double jiangJin;

public JingLi() {
    super();
}
public JingLi(String xingMing, String gongHao, double jiangJin) {
    super(xingMing, gongHao);
    this.jiangJin = jiangJin;
}

public double getJiangJin() {
    return jiangJin;
}
public void setJiangJin(double jiangJin) {
    this.jiangJin = jiangJin;
}

@Override
public void work() {
    System.out.println("哪個員工讓顧客不滿意,我扣誰錢");
};      
}
 廚師 
 /* 
 * 定義員工的子類 廚師類 
 */ 
 public class ChuShi extends YuanGong implements VIP{ 
 public ChuShi() { 
 super(); 
 } 
 public ChuShi(String xingMing, String gongHao) { 
 super(xingMing, gongHao); 
 }      
@Override
public void work() {
    System.out.println("我做飯,放心吃吧,包您滿意");
}
@Override
public void server() {
    System.out.println("做菜加量加料");
}      

}

抽象類作為方法傳回值
【java基礎】第14天——eclipse應用、修飾符、局部與成員變量、自定義資料類型使用(抽象類、接口類)