A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fightingwang 中级黑马   /  2015-1-29 01:01  /  824 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类的特点
1)抽象类不能实例化
2)抽象类可以继承抽象类
3)继承抽象类必须得重写抽象方法

5.抽象类,接口,普通类 的不同点和相同点?
  1)不同点:
            普通类                                接口                                                      抽象类
可以直接实例化对象        不可以直接实例化对象                                不可以直接实例化对象   
可以定义任何成员            只能定义抽象成员方法和常量                     成员方法必须定义为抽象其他和普通类相同
可以被继承                      类可以实现接口,且可以实现多个接口        可以被继承  
                                      接口可以继承多个接口                                   抽象类有构造方法,接口中不能有
                                                                                                           抽象类有普通成员变量,接口中没有
                                                                                                           抽象类可以有非抽象方法,接口中不能有
                                                                                                           抽象类可以用public、protected修饰,接口中只能public(默认public)
                                                                                                           抽象类包含静态方法,接口中没有
                                      接口中的变量只能是public static final,     抽象类中可以是任意类型修饰

2)相同点:都可以用于描述(封装)事物的,

内部类分为哪几种?分别如何创建对象?
分为 局部内部类,匿名内部类...3种

1)外部类名.内部类名 对象名=new 外部类名().new 内部类名 ()
2)外部类名.内部类名 对象名=外部类名.new 内部类名 ()
3)....不记得了第3种
匿名内部类
二、集合
集合的定义?
集合:用来保存一组数据的数据结构
集合的父接口,实现接口,实现类,实现类的常用方法是什么?(建议以树状图画出来,便于加深印象)。
                                                              Collection                                                               
                                                    list                     set   
                                        Arraylist   LinkedList      HashSet  TreeSet


1.List集合
List集合的特征是元素可重复且有序 ;我们可以把他看成是一个动态数组,一般通过下标访问
ArrayList和LinkedList最常用的两个子类实现
1)list可以使用for循环遍历
for(int i=;i<list.size();i++?){
    list.get(i);
}
2)list的浅层复制
调用ArraryList.clone()方法
注意:不能使用list.clone(),clone()方法是Object类的方法,list是接口是不能继承Object类的

2.Set集合:
不重复且无序集
遍历set只能迭代器,用迭代器遍历集合遵循的操作原则:先问后取。问一次取一次。
Iterator<E> it=set.iterator();
while(it.hashnext()){
    E e=it.next();
}
3)map表
Map存储数据使用key-value(键-值)对的形式存储数据的。
对于Map而言,要求key值是唯一的。value值可以重复
获取数据时,使用key可以获取其对应的value
遍历map有3种方法
1)遍历key
  Set<String> keySet = map.keySet();
      for(String key:keySet){
          System.out.println("key:" + key);
          //可以根据每一个key获取其对应的value值
          int value = map.get(key);
2)遍历value
Collection<Integer> values = map.values();
        Iterator<Integer> it = values.iterator();
        while(it.hasNext()){
            int value = it.next();//不能采用 map.next()
            System.out.println("value:" + value);
注意:通过迭代器在遍历集合的过程中,不能通过集合(即不能采用 map.next())去改变集合元素数量
3)遍历键值对
    Set<Entry<String,Integer>> entries= map.entrySet();
        for(Entry<String,Integer> entry : entries){
            //获取一组键值对的键和值
            String key = entry.getKey();
            int value = entry.getValue();
            System.out.println(key + "=" + value);

Collection接口方法的定义
这里我主要列举 Iterator iterator()方法的使用
Collection提供的方法 Iterator iterator()方法来获取迭代器
Iterator是一个接口,定义了遍历集合应有的方法。
使用迭代器遍历集合遵循的操作原则:先问后取。问一次取一次。
   问:boolean hashNext()
  取:Object next()
迭代器可以将取出的数据删除掉
删:remove() 将当前获取的元素删除掉。
注意:1)删除的是next()取出的元素。且只能删除一次!
       2)调用1次next()后只能调用一次remove()!











0 个回复

您需要登录后才可以回帖 登录 | 加入黑马