中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

Java~類,抽象類和接口

最近有空就著迷于java的世界,希望可以把自己的lind重構一個java版本出來,雖然遇到一些小問題,但也都解決了,還是那句話,知識需要積累,程序員需要一個追求!

  1. 抽象類
  2. 接口
  3. 泛型類
  4. 泛型接口
  5. 非泛型類繼承泛型類后,輸出泛型的名稱

一 類,與C#類似,只是去除(chu)了屬性的概念,由(you)方(fang)法去操作指定的字段

package lind.Test;

public class User extends Entity {

    public User(int id, String name) {

        super(1);
        this.name = name;

    }

    private String name;

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     *            the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

}

二 抽(chou)(chou)象類 一(yi)組類型的抽(chou)(chou)象,公開一(yi)些方法和字段供子(zi)類使用(yong)

package lind.Test;

/**
 * 實體
 * 
 * @author Administrator
 *
 */
public abstract class Entity {

    public Entity(int id) {
        this.setId(id);
    }

    /**
     * @return the id
     */
    public int getId() {
        return Id;
    }

    /**
     * @param id
     *            the id to set
     */
    public void setId(int id) {
        Id = id;
    }

    private int Id;

}

三 接口 規定(ding)了一組操作(zuo)的(de)行為(wei),如倉(cang)儲(chu)CURD操作(zuo),它(ta)可能會公(gong)開添加,刪(shan)除(chu),修改(gai),查詢等方法

package lind.Repository;

import java.util.ArrayList;
import java.util.function.Predicate;

public interface IRepository<T> {
    /**
     * 添加
     * 
     * @param entity
     */
    void Insert(T entity);

    /**
     * 更新(xin)
     * 
     * @param entity
     */
    void Update(T entity);

    /**
     * 刪(shan)除
     * 
     * @param entity
     */
    void Delete(T entity);

    /**
     * 返回列表
     * 
     * @return
     */
    ArrayList<Object> GetModel(Predicate<T> predicate);

    ArrayList<Object> GetModel();
}

四 泛(fan)型類和泛(fan)型接口, 這個概念不(bu)如Csharp靈活,在使用過程中需要注意(yi),當然(ran)含義還是(shi)一(yi)樣(yang)的(de)(de),主要是(shi)對一(yi)類功能的(de)(de)抽象(xiang)和代(dai)替,在實現時,直接傳對應(ying)的(de)(de)類型(xing)即可,一(yi)般我們的(de)(de)倉儲(chu)(chu)對象(xiang),如用戶倉儲(chu)(chu),可以要繼承一(yi)個泛型(xing)的(de)(de)倉儲(chu)(chu)類,如下

package lind.Test;

//用戶(hu)倉(cang)儲(chu)
public class UserDao extends JdbcDaoSupport<User> {
    
}

五 非泛型(xing)(xing)類繼承(cheng)泛型(xing)(xing)類后(hou),輸(shu)出泛型(xing)(xing)的名(ming)稱

這是一個(ge)小技(ji)巧,主(zhu)要是泛(fan)型(xing)類(lei)(lei)中去拿里面的類(lei)(lei)型(xing),需要注意的是,必(bi)須有一個(ge)非泛(fan)型(xing)類(lei)(lei)去繼承它,并實例化它,這個(ge)類(lei)(lei)型(xing)才可以被(bei)解析,這一點,確實無法和Csharp相比(bi)

 

感(gan)謝各位耐心的閱(yue)讀(du),下(xia)次我們將介紹Hash表!

 

posted @ 2017-03-21 22:57  張占嶺  閱讀(1072)  評論(1)    收藏  舉報