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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

昨天今天明天

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 昨天今天明天 初级黑马   /  2019-8-27 20:23  /  906 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.继承的概念
        概念:面向对象的三大基本特征之一,子类拥有父类的属性和方法。
2.继承的格式
        public class  子类 extends 父类{ }
3.继承的优点
        1.提高了代码的复用性
        2.提高了代码的维护性
4.继承的弊端
        使子类与父类强耦合在一起(紧密联系在一起),子类会无条件的继承父类的
        属性和方法,降低了子类的独立性。
5.继承中变量的访问特点
        规律:就近原则(局部优先原则)
        查找顺序:先去子类的局部-》子类的成员-》父类的成员
        如果仍查找不到则报错
6.super关键字在访问成员变量时的用法
        ps:没有关键字进行引用的时候变量访问的规则是:按照变量的访问特点进行变量的访问。
        1.super.成员变量名 访问父类的成员属性
        2.this.成员变量名     访问本类的成员属性
7.super关键字访问成员方法时的用法
        super():构造子类对象时,会先创建父类对象。super关键字调用父类的构造方法。
                注意点:默认情况下会调用父类的无参构造方法,super关键字必须是首行非注释代码。
        this();调用本类的构造方法。注意点(必须首行非注释代码)。
8.继承中成员方法的访问特点()
        super.方法名() 调用父类的方法。
        this.方法名() 调用子类的方法。
9.方法重写
        子类中出现与父类同名的方法
        (方法重写是否与返回值有关  ?)
10.方法重写注意事项
        1.private的方法不允许被重写(私有的方法无法被继承,故谈不上重写)
        2.private----->默认------>protected ------>public被重写的方法的访问范围要大于等于父类中方法的访问范围。
11.继承的注意事项
        1.单继承体系
        2.支持多层(级)继承
12.package的概念
        包就是文件夹,用来管理类的。
        如何创建在类的首行非注释添加package com.itheima;
13.import 的概念
        导包:import com.itheima.Teacher;
        通配符*  import com.itcast.*;//导入itcast下的所有方法
                import java.util.*;
14.权限修饰符
权限修饰符        同一个类        同包子类无关类        不同包子类        不同包无关类
private        可以                       
默认        可以        可以               
protected        可以        可以        可以       
public        可以        可以        可以        可以
15.final修饰符
        1.修饰方法 当前方法不能被重写
        2.修饰变量 当前变量不能被修改,变量变成一个常量
                变量如果未赋值,会在第一次赋值后不允许被再次赋值。
        3.修饰类 当前类不能被继承
       
        final修饰基本数据类型和引用数据类型
       
        final修饰后,栈当中的数据不允许改变
        (实际地址值不允许改变?)

16.static修饰符
        修饰属性或方法
        1.修饰变量 (在堆中的静态存储区中进行存储 以类名.属性名的形式进行存储(student.university))
                1.类名.属性名的方式进行访问
                2.当前类的所有对象共享一个变量的值。
        访问方式:静态修饰的变量可以1.类名+变量/属性名进行访问或进行2.实例化引用的方式进行访问。
        (一次赋值多次使用)
        2.static访问特点
        修饰方法 1.可以通过类名.方法名 进行调用
        可以通过类名调用当然,也可以通过对象名调用
       
        2.静态方法只能访问本类的静态方法和静态变量
1.多态的概念
        同一段代码不同时刻表现出不同的执行形态
2.多态的前提
        继承
        方法重写
        父类应用指向子类的对象
3.成员访问特点
        1.成员变量:编译看左边(父类),运行看左边(父类)
        2.成员方法:编译看左边(父类),运行看右边(子类)(如果成员方法存在重写则调用重写,如果子类没有对应的方法则调用父类的方法,如果父类没有则报错)
4.多态的优点与弊端
        优点:提高了程序的拓展性
        缺点:父类引用无法调用子类的特有方法
       
        方法的参数是对象时,调用时传递的是所使用对象的参数和方法
5.多态中的向下转型和向上转型
        向上转型:定义父类引用指向子类对象。自动类型转换。
        向下转型:父类对象强制类型转换成子类对象。强制类型转换
6.抽象类的概念
        通过abstract关键字进行修饰的类
7.抽象方法的概念
        没有方法体,通过abstract修饰。
8.抽象类的特点
        抽象类和抽象方法都通过abstract关键字修饰。
        抽象类不一定有抽象方法,如果类有抽象方法此类必须为抽象类。
        抽象类不能实例化对象
        抽象类的子类要么重写抽象方法,要么子类也是抽象类。
9.抽象类的成员特点
        变量、常量
        构造方法(无参、有参)不能实例化,但可以通过子类对父类成员进行初始化。(提供构造方法的目的)
        普通方法,抽象方法
10.接口的概述
        一个特殊的抽象类,接口与类是实现关系,接口中只有抽象方法,公共规范
11.接口的特点
        接口是通过interface关键字进行修饰
        类与接口间是实现关系 implements
        接口不能实例化对象(接口本身和抽象类一样是抽象的)(存在意义:完成多态)
        接口的实现类要么重写抽象方法,要么为抽象方法。
12.接口的成员特点
        静态常量 public static final 可以部分或整体省略
        抽象方法 public abstract 可以部分或整体省略
13.类和接口的关系
        类与类:继承,单继承 支持多层继承
        类与接口:实现 , 类实现某一个接口,支持实现多个接口并且支持实现某个接口的同时去继承某个类。
        接口与接口:继承,支持多继承体系。
        1.类名作为形参和返回值
        类名作为形参,   实际传递的是该类的对象
        类名作为返回值,实际返回的是该类的对象
2.抽象类作为形参和返回值
        抽象类作为形参传递的是抽象子类的对象
        抽象类作为返回值返回的是抽象子类的对象
3.接口作为形参和返回值
        1.接口作为形参,传递的是接口的实现类对象
        2.作为返回值,返回的是接口实现类的对象
4.内部类的概念
        类的内部声明的类
5.内部类访问特点
        内部类可以直接访问外部类的成员,包括私有。
        外部类访问内部类,必须创建对象。
6.内部类的分类
        成员内部类
        局部内部类
7.成员内部类
        概念:类的内部方法外部声明的类
        格式:外部类.内部类 引用 = new 外部类().new 内部类();
       
        外部类访问内部类的成员变量:Outer.this.number;
8.局部内部类
        类的内部方法中声明的类
9.匿名内部类
        1.没有名字的局部内部类。
        2.new 类名或接口名(){方法的重写 }
10.Math工具类java.lang
        abs():绝对值
        ceil():向上取整 12.3->13.0,12.6->13.0
        floor():向下取整
        round():四舍五入取整
        max():求两者最大值
        min():求两者最小值
        pow(2,3) 求幂数
        random()  [0.0,1.0)之间的随机数。
11.System类java.lang
        .exit() 终止当前程序的运行 0正常终止,非零异常终止,echo %errorlevel%
        .currentTimeMillis()//获取当前时间的毫秒值
       
        echo 批处理命令 读取错误(控制台从输出语句)
        %errorlevel% 返回数值
12.Object类
        toString():打印当前对象说明性的信息
        equals(),默认比较的是对象的地址值是否相等,重写后比较的是内容是否相等。
13.Array类
        toString(),将数组转换成字符串
        sort()排序
        1. 包装类(封装数据类型)(提供一系列相关的方法)
        byte         Byte
        short         Short
        int         Integer
        long         Long
        boolean         Boolean
        char         Charater
        float         Float
        double         Double
        2. 如何通过Integer对象描述一个int值
                a. new Integer(2);
                b. new Integer("2");
                c. Integer.valueof(2);
                d. Integer.valueof("2");
        3. int 与String互换
                a. int to String
                        i. int i = 5,String s= i + "";
                        ii. String s = String.valueof(i);
                b. String to int
                        i. String to Integer to int
                                1) String s ="123"; Integer i=Integer.valueof(s);int I = i.intValue()
                        ii. String to int
                                1) String s ="123"; int I = Integer.parseInt("s");
        4. 自动装箱和拆箱(jdk1.5之后提供的特性)
                a. 自动装箱
                        i. int i=100;Integer ii = i;基本数据类型to封装数据类型
                b. 自动拆箱
                        i. Integer I = Integer.valueof(ii),int b=I;将封装类型转换成基本数据类型。
        5. Date类实例化(构造方法) java.util
                a. new Date() 获取当前系统时间
                b. new Date(long time) 获取基于1970-1-1 0:0:0后加上time的时间
                c. Date d1 = new Date(); d1.tolocaleString()  //转换成中文时间。
        6. Date类常用方法
                1. getTime();
                2. setTime(long time);
        7. SimpleDateFormat格式化日期 java.text包中
                1. yyyy年 MM月 dd日 HH时 mm分 ss秒
                2. format()格式化
                3. parse()   解析
        8. Calendar 类用法 Java.util
                1. 如何获取Calendar对象
                        i. Calendar.getInstance();//获取当前系统时间
                        ii. get();获取日历字段对应的值。
                                1) 获取月份的时候注意+1
                                        a) 即int day = c.get(Calendar.Month)+1
                        iii. add():根据日历字段运算。
                        iv. set();设置当前日历的年月日
        9. 异常
                1. 概念:程序中的错误
                2. Throwable 所以异常消息的顶级父类
                        i. Error:不可处理的异常
                        ii. Exception:可处理异常
                                1) 编译期异常
                                2) RuntimeException运行时异常。
                3. 异常处理的两种方式
                        i. try{ }catch(){}  
                                try  异常的监视块,catch 异常的捕获块
                        ii. throws  
        10. Throwable的成员方法
                1. getMessage();异常原因
                2. toString();简短异常消息
                3. printStackTrace();详细异常消息
        11. 运行时异常和编译时异常
                1. 编译时异常:需要在程序编译时进行异常处理
                2. 运行时异常:无需在程序编译时进行处理
        12. 异常举例
                1. 数学异常 ArithmeticException除数不能为零
                2. 空指针异常 NullPointerException
                3. 字符串索引越界StringIndexOutOfBoundException
                4. 数字格式化异常 NumberFormatException
                5. 类型转换异常 ClassCastException
        13. 多重catch块
                1. try{}catch(){}catch(){}
                2. 如果后面带有finally{}字符的获取异常语块,最后都会执行finally里面的语块。
        14. throws
                1. 回避异常
        1. 集合概念及体系结构
                a. 概念:可变长度的数据容器。
                b. 体系结构:Collection
                                1) 单列集合:
                                        a) List:可重复
                                                i) ArrayList
                                                ii) LinkedList
                                        b) Set:不可重复
                                                i) HashSet
                                                ii) LinkedHashSet
                                                iii) TreeSet
                                2) 双列集合:Map
                                        a) Map
                                                i) HashMap
        2. Collection的概述和基本使用
                概念:单列集合的顶级接口;
                通过多态的方式创建对象;Collection <String> c =new ArrayList<>();
                添加数据 :add();
        3. Collection集合的常用方法
                a. 删除:remove()
                b. 清除:clear()
                c. 是否存在某个元素:contains()
                d. 集合是否为空:isEmpty()
                e. 集合的长度:size()
        4. Collection集合遍历
                a. 通过迭代器对象进行 遍历
                b. 步骤
                        i. 获取迭代器:集合.iterator();
                        ii. 判断迭代器是否可以读取元素:迭代器.hashNext()
                        iii. 读取元素:迭代器.next();
        5. List集合特点
                a. 有序,可通过索引进行访问
                b. 存储数据可重复
        6. List集合特有方法
                a. add(index,"");插入,在指定位置插入一个元素,此位置之前的元素向后移。
                b. set(index,“”)替换,将指定位置的值替换成期望值。
                c. remove(index)删除
                d. get(index)读取元素
        7. 集合并发问题及Listiterator用法
                a. 异常:当通过迭代器对象迭代集合对象时,向集合对象添加数据会导致异常出现
                        i. 解决
                                1) 通过for循环
                                2) listiterator()进行解决
                                        a) hasPrevious()判断是否有上一个元素
                                        b) previous()取出上一个一元素
                                        c) add()向集合中添加元素
                                        d) remove();向集合中删除元素
        8. 增强for循环jdk1.5
                a. for(变量的类型 变量名:数组或集合){ }
        9. 数据结构
                a. 栈与队列
                        i. 栈Stack 入栈and出栈  Java.util   先入后出
                                1) Stack stack = new Stack();
                                        a) stack.push(123);入栈
                                        b) stack.pop();出栈
                        ii. 队列Queue java.util  先入先出
                                1) Queue queue = new LinkedList();
                                2) queue.add(123);入队
                                3) queue.poll();出队
        10. 数组和链表
                a. 数组 查找快,增删慢
                b. 链表 查找慢,增删快
        11. LinkedList特有方法
                a. addfirst();
                b. addLast();
                c. getFirst();返回元素
                d. getLast();返回元素
                e. removeFirst();返回元素
                f. removeLast();返回元素
                1. Set集合概述和特点
        不重复
        无索引
        无序;HashSet对集合的迭代顺序不做任何保证。
        2. Hash值的概念
                a. 什么时哈希值?
                        i. 根据对象的地址或字符串或数字算出来的值,类型为int;
                b. 如何获取哈希值?
                        i. 对象Object类内有hashCode()方法返回对象的哈希值。
                        ii. public int hashCode();
                        iii. 通过方法重写,可以实现不同对象的哈希值是相同的。
                c. 1.概念:是一个整型值,默认来自 Object类中的hashCode方法。
                2. 规律:不同的hashCode一定来自不同的对象,相同的hashCode可能来自不同的对象,也可能来自同一个对象。
                3.作用:在比较两个对象是否相等时,可以提高执行效率。
        3. HashSet集合的特点
                a. 无序、没有索引
                b. 不包含重复元素
                c. 底层采用哈希表(数组+链表)
        4. LinkedHashSet集合的特点
                a. 有序,无重复
        5. TreeSet集合的特点
                a. 排序,默认情况下对数据进行自然排序。
                b. 不包含重复的元素
                c. 排序自定义对象
                        i. 第一种方式
                                1) 要求自定义对象所属的类要实现一个接口(java.lang.Comparable)里面的方法,
                                2) 重写方法 compareTo(Student s);>0当前添加的元素大,==0等 <0小
                        ii. 第二种方式
                                1) 构造方法中传入实现某个接口的对象(java.util.Comparator<T>)。
                                2) 重写方法 int compare(Student s1 ,Student s2)
        6. 泛型的概念个好处
                a. 参数化类型
                        i. 优点:
                                1) 提供了编译器检查功能
                                2) 减少了强制类型转换。
        7. 泛型类、接口、方法
               
        8. 可变参数
                a. 概念:方法的参数的个数可变
                b. 语法:方法名(int…i);i的本质是一个数组
                c. 注意事项
                        i. 一个方法只能有一个可变参数
                        ii. 如果有多个参数,可变参数必须放在后面。
        1. Map集合的概述和特点
                a. 键值对的方式存储数据
                一个键对应一个值
                键是不允许重复的,值可以重复
                无序
        2. map集合中常用的方法
                a. 添加数据:put(key,value);
                b. 删除数据:remove(key);
                c. 清空数据:clear();
                d. 判断某个键是否存在:containsKey(key);
                e. 判断某个值是否存在:containsValue(value);
                f. 判断是否为空:isEmpty();
                g. 长度:size();
        3. map集合读取数据方式
                a. 根据键值key获取相应的值:get(key);
                b. 获取所有键的集合:keySet----->Set集合
                c. 获取所有值的集合:value------>Collection集合
                d. 获取所有键值对                     对象的集合 entrySet()-->Set; Map.entry
        4. Collections常用方法(是一个工具类)
                a. 排序:sort();
                b. 翻转:reverse();
                c. 将集合中的数据随机排列:shuffle();
                       

       
       

0 个回复

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