今日内容介紹
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("做菜加量加料");
}
}
抽象類作為方法傳回值
