Java(接口作为成员变量类型、接口作为方法的参数和或返回值)

接口作为成员变量类型                          

执行结果:

我叫艾希,开始施放技能:
Biu~Pia~Biu~Pia~
施放技能完成。

Process finished with exit code 0

接口作为方法的参数和或返回值

package cn.itcast.day11.demo07;

import java.util.ArrayList;
import java.util.List;

/*
java.util.List正是ArrayList所实现的接口。
 */
public class DemoInterface {

    public static void main(String[] args) {
        // 左边是接口名称,右边是实现类名称,这就是多态写法
        List<String> list = new ArrayList<>();

        List<String> result = addNames(list);
        for (int i = 0; i < result.size(); i++) {
            System.out.println(result.get(i));
        }
    }
    public static List<String> addNames(List<String> list) {
        list.add("迪丽热巴");
        list.add("古力娜扎");
        list.add("玛尔扎哈");
        list.add("沙扬娜拉");
        return list;
    }

}

执行结果:

迪丽热巴
古力娜扎
玛尔扎哈
沙扬娜拉

Process finished with exit code 0

 

 

 

 

发布了105 篇原创文章 · 获赞 18 · 访问量 1万+
展开阅读全文

java接口参数方法返回类型接口

11-10

1.IString是接口,注意里面的比较,连接,插入方法,在注意SeqString类比较连接插入这3个方法的参数 问题:1.类中的方法,接口参数有什么用处?可以换为String str或者SeqString str吗 2.注意compareTo(IString str)这样传参数就错呢?而SeqString str 就对呢? 3是不是compareto 的返回类型导致的,但是接口里的参数这样写没问题啊 4,有些方法的返回类型是接口,有什么用、 public interface IString { public void clear();//串的置空操作 public boolean isEmpty();//串的判空操作 public int length();//求串的长度 public char charAt(int index);//取字符 public IString subString(int begin,int end);//取子串 public IString insert(int offset,IString str);//插入 public IString delete(int begin,int end);//删除 public IString concat(IString str);//链接 public int compareTo(IString str);//比较 public int indexOf(IString str);//字符串定位; ``` ``` public class SeqString implements IString { private char[] stringvalue;//为串申请储存空间,顺序储存 private int currentlength;//串的长度 //3个构造方法 //空串构造 //利用字符串常量构造串 //利用字符数组构造串 public SeqString() { stringvalue=new char[0];//串的长度为零,利用顺序储存数组体现为长度构造0,申请空间为0; currentlength=0; } public SeqString(String str){ stringvalue=str.toCharArray(); currentlength=stringvalue.length; } public SeqString(char[] value) { stringvalue=new char[value.length]; int k=0; for(k=0;k<value.length;k++) { stringvalue[k]=value[k]; } currentlength=value.length; } public void clear() { currentlength=0; } public boolean isEmpty(){ return currentlength==0; } public int length(){ return currentlength; } public char charAt(int index) { if(index<0||index>=currentlength) { throw new StringIndexOutOfBoundsException(index); }else { return stringvalue[index]; } } public void allocate(int NewCapacity){ char[] tem=stringvalue; stringvalue=new char[NewCapacity]; for(int i=0;i<tem.length;i++) { stringvalue[i]=tem[i]; }//stringvalue扩充容量 } public IString subString(int begin,int end){//取子串 //具体思路新建一个字符数组,将字符取出放入 //对下标进行判断 if(begin<0||end>currentlength||begin>end) { throw new StringIndexOutOfBoundsException("下标异常"); } if(begin==0&&end==currentlength) { return this; }else { char[] buffer=new char[end-begin];//字符个数end-1-begin+1 for(int i=0;i<buffer.length;i++) { buffer[i]=stringvalue[i+begin]; } return new SeqString(buffer); } } public IString insert(int offset,IString str) { //插入 //0<=offset<=currentlength下标问题 //第offset位往后移动str.length //容量问题现容量stringvalue.length 串的长度str.length+currentlength if(offset<0||offset>currentlength) { throw new StringIndexOutOfBoundsException("下标异常"); } if((str.length()+currentlength)>stringvalue.length) { allocate((str.length()+currentlength)); } for(int i=currentlength-1;i>=offset;i--) { stringvalue[str.length()+i]=stringvalue[i]; } for(int t=0;t<str.length();t++) { stringvalue[(offset+t)]=charAt(t); } currentlength=currentlength+str.length(); return this; } public IString delete(int begin,int end) { if(begin<0||end>currentlength||begin>end) { throw new StringIndexOutOfBoundsException("下标异常"); } for(int i=0;i<currentlength-end;i++) { stringvalue[begin+i]=stringvalue[end+i];//end+i<currentlength } currentlength=currentlength-(end-begin); return this; }//删除 public IString concat(IString str) { return insert(currentlength,str); }//链接 public int compareTo(IString str) { int n=Math.min(currentlength,str.currentlength); for(int k=0;k<n;k++) { if(stringvalue[k]!=str.stringvalue[k]) { return stringvalue[k]-str.stringvalue[k]; } } return currentlength-str.currentlength; }//比较 public int indexOf(IString str) {}//字符串定位; } 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览