首页技术文章正文

继承多态接口异常【黑马java培训】

更新时间:2019年07月26日 10时57分05秒 来源:黑马程序员论坛

在就业班的几天内 学到了很多东西,继承,多态,接口,异常等等。


day01
  • 继承的概念
    • 概念 :面向对象得三大基本特征之一,使子类可以拥有父类得属性和方法

  • 继承的格式
    • public class 子类  extends  父类

  • 继承的优点
    • 提高了代码的复用性
    • 提高了代码的维护性

  • 继承的缺点
    • 使子类与父类强耦合(紧密联系在一起)在一起,使子类会无条件继承父类得属性和方法,降低了子类得独立性

  • 继承中变量的访问特点
    • 规律:就近原则 局部优先原则
    • 子类的局部变量
    • 子类的成员变量
    • 父类的成员变量

  • super关键字在访问成员变量时的用法
    • super.变量名---->访问父类得成员变量
    • this.变量名----->访问本类得成员变量

  • 继承中构造方法的访问特点(super调用构造方法)
    • super();调用父类得构造方法,应该是首行非注释代码
    • this(); 调用本来得构造方法,应该是首行非注释代码

  • 继承中成员方法的访问特点(super调用成员方法)
    • super. 方法名(); 父类的成员方法
    • this. 方法名(); 本类的成员方法

  • 方法重写
    • 子类中出现了与父类相同的方法

  • 方法重写注意事项
    • 不能重写private的方法
    • private--默认---protected--public:子类中重写的方法的访问范围要大于等于父类中方法的访问范围

  • 继承的注意事项
    • 单继承体系
    • 多层继承

  • package的概念
    • 文件夹

  • import的概念
    • 导入不同包下的java类
    • 导包时使用通配符: import  cn.itcat.*;

  • 权限修饰符

权限修饰符
同一个类
同包子类无关类
不同包子类
不同包无关类

private可以
默认可以可以
protected可以可以可以
public可以可以可以可以
15.final修饰符
  • 修饰方法,代表当前方法不可以被重写
  • 修饰变量,变量就变成常量
  • 修饰类,不允许被继承

16.static修饰符
  • 修饰变量:1.类名.变量名     2.类得多个对象共享一个变量得值
  • 修饰方法    类名.方法名()   注意点:只能访问本来得静态属性和静态方法

day02
  • 多态的概念
    • 概念:同一段代码不同时刻表现出不同得执行状态

  • 多态的前提
    • 继承
    • 方法得重写
    • 父类得引用指向子类得对象

  • 多态中成员访问特点
    • 成员变量:编译看左边,运行看左边
    • 成员方法:   编译看左边,运行看右边

  • 多态的优点和缺点
    • 优点:提高了代码得拓展性
    • 缺点:父类得引用无法调用子类特有得方法

  • 多态中的向上转型和向下转型
    • 向上转型:父类得类名  父类引用=new 子类得对象(); 自动类型转换
    • 向下转型:子类得类名   子类得引用=(子类得类名)父类引用;强制类型转换

  • 抽象类的概念
    • 通过abstract修饰得类为抽象类

  • 抽象方法的概念
    • 通过abstract修饰得方法为抽象方法,抽象方法没有方法体得方法

  • 抽象类的特点
    • 抽象类和抽象方法必须通过abstract关键字修饰
    • 抽象类不一定会有抽象方法,但是一旦有了抽象方法必须是抽象类
    • 抽象类不能实例化对象
    • 抽象类得子类必须重写抽象方法或者自己也变为抽象类

  • 抽象类的成员特点
    • 成员变量   变量/常量
    • 构造方法 无参/有参
    • 方法     抽象/普通

  • 接口的概述
    • 特殊得抽象类,接口中全部都是抽象方法,行为规范

  • 接口的特点
    • 接口是通过 interface关键字修饰
    • 类与接口之间是实现关系,通过implments 关键字实现
    • 接口不可以实例化对象
    • 接口得实现类要么重写抽象方法要么自己也变成抽象类

  • 接口成员的特点
    • 静态常量
    • 抽象方法

  • 类和接口的关系
    • 类与类之间关系:继承关系,单继承体系,支持多层继承
    • 类与接口之间得关系:实现得关系,可以单实现,也可以多实现,并且能够继承某个类得同时实现某个接口
    • 接口与接口之间得关系:继承关系,支持多继承




day03
  • 类名作为形参和返回值
    • 类名作为形参或返回值,其实传递或返回的是该类得对象

  • 抽象类作为形参和返回值
    • 抽象类名作为形参或返回值,其实传递或返回的是该类子类得对象

  • 接口作为形参和返回值
    • 接口名作为形参或返回值,其实传递或返回的是该接口实现类得对象

  • 内部类概念
    • 类内部声明得类

  • 内部类的访问特点
    • 内部类可以直接访问外部类得成员,包括私有得
    • 外部类访问内部类成员,需要实例化内部类对象

  • 内部类的分类
    • 成员内部类
    • 局部内部类

  • 成员内部类
    • 声明在类得成员位置得类
    • 外部类得类名.内部类得类名  引用名=外部类得对象.内部类得对象


   public class Outer {
    private int num = 10;
    public class Inner {
        int num=20;
        public void show() {
            int num=30;
            System.out.println(num);
            System.out.println(this.num);
            System.out.println(Outer.this.num);
        }
    }

    public void method() {
        Inner i = new Inner();
        i.show();
    }

}
   public class InnerDemo {
    public static void main(String[] args) {
        //创建内部类对象,并调用方法
//        Inner i = new Inner();
        Outer.Inner oi = new Outer().new Inner();
        oi.show();
        System.out.println("------------------------");
        Outer outer=new Outer();
        Outer.Inner ooi=outer.new Inner();
        ooi.show();
        System.out.println("------------------------");
        Outer o = new Outer();
        o.method();
    }
}
  • 局部内部类
    • 类得方法内部声明得类

  • 匿名内部类
    • 没有名字得局部内部类
    • new 接口/抽象类/类(){方法重写()}

  • Math工具类
    • java.lang.Math
    • abs():求绝对值
    • ceil():向上取整  12.35  12.56--->13
    • floor():向下取整 12.35  12.56------>12
    • round():四舍五入 12.35-->12  12.56--->13
    • max():两数求最大值
    • min():两数求最小值
    • pow():求幂数 2 3
    • random():随机数 [0.0-1.0)

  • System类
    • exit():退出虚拟机  echo %errorlevel%
    • currentTimeMillis():返回得是距1970年1月1日0点0分0秒距现在得毫秒差

  • Object类
    • toString():一般用于对当前对象进行说明
    • equals():比较两个对象得内容是否相等

  • Arrays类

    • java.util.Arrays
    • toString():以字符串得方式获取数组
    • sort(): 数组排序




  • 封装数据类型
    • byte        Byte
    • short      Short
    • int           Integer
    • long        Long
    • float        Float
    • double    Double
    • char         Character
    • boolean   Boolean

  • 如何通过Integer对象描述一个int型值
    • new  Integer(100)
    • new  Integer("100")
    • Integer.valueOf(100)
    • Integer.valueOf("100")

  • int与String互换
    • int转String
      • 1+“”
      • String.valueOf(5)

    • String转int
      • Integer.valueOf("5")    intValue()
      • Integer.parseInt("5");


  • 自动拆箱装箱jdk1.5
    • 自动装箱:int i=100;  Integer ii=i;
    • 自动拆箱:Integer ii=Integer.valueOf(100); int i=ii;

  • Date类实例化 java.util
    • new Date()
    • new Date(long)

  • Date类常用方法
    • getTime()
    • setTime(long)

  • SimpleDateFormat格式化日期 java.text
    • yyyy MM  dd  HH mm ss
    • format():将日期转换为指定格式得字符串
    • parse():将指定格式得字符串转换为日期

  • Calendar类用法 java.util
    • Calendar c=Calendar.getInstance();
    • c.get(Calendar.Year)根据日历字段返回相应得值
    • add()
    • set()

  • 异常
    • 概念:程序中出现得错误
    • 异常得体系结构
      • Throwable
        • Error:不可处理异常
        • Exception:可处理异常
          • 编译期异常:
          • 运行时异常:RuntimeException



    • try:异常得监视块
    • catch:异常得捕获块

  • Throwable成员方法
    • getMessage(): 错误原因
    • toString():简要异常消息
    • printStackTrace():详细异常消息

  • 运行时异常和编译时异常
    • 运行时异常
    • 编译时异常:要求编译时必须进行异常处理

  • 异常举例
    • ArithmeticException:数学异常除数不能为0
    • NullPointerException:空指针异常
    • StringIndexOutOfBoundsException:字符串索引越界
    • NumberFormatException:数字格式化异常
    • ClassCastException:类型转换异常

  • 多重catch块
    • try{}catch   catch

  • throws
    • 回避异常


  








推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!