2018-12-04

封裝:對外不可見,外部不能直接訪問,只能通過接口來修改和獲取。

封裝使用的關(guān)鍵字就是private

this關(guān)鍵字:特殊的變量,引用當(dāng)前實例(對象)

構(gòu)造方法的作用:初始化對象的屬性,實例化出來的對象的屬性的內(nèi)容是指定的值,不再是默認(rèn)值。

方法的重載:方法名相同,參數(shù)列表不同

static的使用方法


package day08;

import java.util.Date;

public class Student {
    private int sid;//學(xué)號
    private String sname;//姓名
    private int age;//年齡
    private boolean isMale;//性別 true:男  false:女
    private Date birth;//生日
    private int grade;//成績
    private static int count;//學(xué)生人數(shù)

    
    static{
        System.out.println("加載學(xué)生模板");
    }
    
    /** 
     * @param sid   表示學(xué)號
     * @param sname 表示姓名
     * @param age   表示年齡
     * @param isMale    表示性別
     * @param grade 表示成績 
     */
    public Student(int sid,String sname,int age,boolean isMale,int grade){
        this.sid = sid;
        this.sname = sname;
        this.age = age;
        this.isMale = isMale;
        this.grade = grade;
        count++;
    }
    
    /**
     * 無參的構(gòu)造方法
     */
    public Student(){
        count++;
    }

    /**
     * 獲取學(xué)生數(shù)量
     * 靜態(tài)的成員方法里面不能使用非靜態(tài)的成員
     * @return
     */
    public static int getCount() {
        return count;
    }

使用方法

(1)將人數(shù)的屬性設(shè)置成static;
(2)有參數(shù):參數(shù)列表中不需要加是static
(3)設(shè)置一個函數(shù)用來返回count值

父類和子類的應(yīng)用


package day10;

/**
 * 員工類
 * @author yangzc
 *
 */
public class Emp {
    private long id;//工號
    private String name;//姓名
    private char gender;//性別
    private double salary;//薪資
    
    public Emp(){}
    
    public Emp(long id, String name, char gender, double salary) {
        super();//調(diào)用父類的無參構(gòu)造方法
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.salary = salary;
    }

    public void show(){
        System.out.println(""+id+","+name+","+gender+","+salary);
    }
    
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public char getGender() {
        return gender;
    }
    public void setGender(char gender) {
        this.gender = gender;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    
    
}

package day10;

/**
 * 項目經(jīng)理類型
 * @author yangzc
 *
 */
public class PM extends Emp{
    private int exp;//工作年限
    private double bonus;//項目獎金
    
    /**
     * 無參構(gòu)造方法
     */
    public PM(){
        setId(System.currentTimeMillis());
        setName(""+System.currentTimeMillis());
        setGender('男');
        setSalary((int)(Math.random()*20000*100)/100.0);
        exp=3;
        bonus=3000.0;
    }
    
    /**
     * 
     * @param id
     * @param name
     * @param gender
     * @param salary
     * @param exp
     * @param bonus
     */
    public PM(long id,String name,char gender,double salary,int exp,double bonus){
        setId(id);
        setName(name);
        setGender(gender);
        setSalary(salary);
        this.exp = exp;
        this.bonus = bonus;
    }
    
    public void show(){
        System.out.println(""+getId()+","+getName()+","+getGender()+","+getSalary()+","+exp+","+bonus);
    }
    

    public int getExp() {
        return exp;
    }
    public void setExp(int exp) {
        this.exp = exp;
    }
    public double getBonus() {
        return bonus;
    }
    public void setBonus(double bonus) {
        this.bonus = bonus;
    }
    
    
}




列如 員工表和程序員表

1.將員工的屬性寫出來;
2.寫出一個無參數(shù)的列表 和一個有參數(shù)的列表
3.然后寫出一個函數(shù),打印出員工表的內(nèi)容

1.將程序員繼承員工表,將員工表中沒有的屬性寫下來
2.寫出一個無參數(shù)列表 和有參數(shù)列表
無參數(shù)列表:
因為父類的屬性都是封裝起來的,所以說沒有辦法直接調(diào)用,要直接使用set函數(shù)去修改,括號中直接填寫要修改的內(nèi)容;
有參數(shù)列表:
因為父類中的屬性都是封裝起來的,所以說參數(shù)列表中的內(nèi)容寫 父類的set函數(shù)去修改,括號中直接填寫要修改的屬性;
3.然后寫出一個函數(shù),打印出子類中的信息,父類的信息內(nèi)容需要用get函數(shù)去調(diào)用;
4.通過主程序中去直接調(diào)用該函數(shù),就可以得到父類以及子類中的值。

super關(guān)鍵字的用法

package day10;


/**
 * 程序員類型
 * @author yangzc
 *
 */
public class SE extends Emp{
    private int hot;

    /**
     * 無參的構(gòu)造方法
     */
    public SE(){
        //調(diào)用父類的有參構(gòu)造方法初始化對象的屬性
        super(System.currentTimeMillis(),""+System.currentTimeMillis(),'男',(int)(Math.random()*20000*100)/100.0);
        hot=100;
    }
    
    /**
     * 
     * @param id    保存輸入的工號
     * @param name  保存輸入的姓名
     * @param gender    保存輸入的性別
     * @param salary    保存輸入的工資
     * @param hot   保存輸入的關(guān)注度
     */
    public SE(long id,String name,char gender,double salary,int hot){
        super(id,name,gender,salary);//調(diào)用父類的有參構(gòu)造方法
        this.hot = hot;
    }
    
    /**
     * 顯示程序員的基本信息
     */
    public void show(){
        System.out.println(""+getId()+","+getName()+","+getGender()+","+getSalary()+","+hot);
    }
    
    
    public int getHot() {
        return hot;
    }
    public void setHot(int hot) {
        this.hot = hot;
    }
    
    
    
}








  • super()的作用:是指父類的構(gòu)造方法的函數(shù)

1.軟件中有自動編寫的程序
2.無參列表:
super()括號中需要寫入父類相應(yīng)屬性的內(nèi)容,填寫進(jìn)去
有參列表:
super括號中需要填入父類中相應(yīng)的屬性;
3.建立一個函數(shù),將函數(shù)的中的屬性內(nèi)容打印出來,通過get函數(shù) 來獲取父類的屬性內(nèi)容。

重寫父類中的打印內(nèi)容

如果子類中的函數(shù)內(nèi)容與父類的打印內(nèi)容的條件不符合,需要將在子類中的重新編譯,但是函數(shù)名要與父類的函數(shù)名相同,要不然的話會報錯。

tostring:直接在軟件中source調(diào)用tostring 打印出屬性的內(nèi)容,也可以去調(diào)用父類的內(nèi)容。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,160評論 2 9
  • 中午在夢澤園吃飯,一個人點(diǎn)了個炒菜,阿姨習(xí)慣性問道:幾個飯?我:“一個”。她有些遲疑,或者說是驚訝。因為一般而言,...
    雙林木兮閱讀 1,341評論 0 3
  • SDK 下載 安裝 SDK下載好之后,點(diǎn)擊安裝,選擇需要的package install 配置系統(tǒng)變量:如下三個圖...
    eosclover閱讀 401評論 0 2
  • 時間管理的基礎(chǔ)是精力管理(身體,情緒,思維,精神)四方面。 我是學(xué)養(yǎng)生的對身體方面的話題比較敏感,一個人再有錢,再...
    wm王玫閱讀 155評論 0 1
  • 這個標(biāo)題 也真的 是 有夠非主流的了 但是最近聽了這首歌 真好聽阿 盡管不準(zhǔn)我哭的男生還未出現(xiàn) 已經(jīng)有期待了
    姓張名三閱讀 334評論 0 0

友情鏈接更多精彩內(nèi)容